У меня есть простой прокси-сервер apigee, но я вижу в трассировке проблему, когда заголовок Host, идущий к цели, содержит хост самого прокси.
т.е. цель получает
Host: xx.apigeename.com
вместо:
Host: my.awsservername.com
Цель находится в другом домене, чем прокси, поэтому это означает, что целевой сервер неправильно обрабатывает запрос (в данном случае 404).
Почему Apigee может отправлять точно такой же заголовок хоста, а не преобразовывать его?
Я попытался установить его явно, установив TargetEndpoint:
<TargetEndpoint name="xyzzy">
<Description/>
<FaultRules/>
<PreFlow name="PreFlow">
<Request>
<Headers>
<Header name="Host">{target.host}</Header>
</Headers>
</Request>
<Response>
</Response>
</PreFlow>
<PostFlow name="PostFlow">
<Request/>
<Response/>
</PostFlow>
<Flows/>
<HTTPTargetConnection>
<Properties/>
<URL>https://{targetBackend}/xyzzy</URL>
<SSLInfo>
<Enabled>true</Enabled>
<Protocols>
<Protocol>TLSv1.2</Protocol>
</Protocols>
</SSLInfo>
</HTTPTargetConnection>
</TargetEndpoint>
Документация, которую Apigee имеет по этому поводу, кажется очень расплывчатой.
Это становится супер расстраивающим. У нас есть другие прокси, которые работают нормально, не делая ничего особенного.