Я настроил шлюз приложений Azure с WAF2 в качестве пограничного шлюза!Запросы отправляются в бэкэндпул в том же Vnet.Бэкэндпул - это IP-адрес Istio Ingress Gateway
!Ingress Gateway
настроен для нескольких хостов, как показано ниже, и аналогичные виртуальные службы сопоставляются с Ingress Gateway
.
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: httpbin-gateway
spec:
selector:
istio: ingressgateway # use Istio default gateway implementation
servers:
- port:
number: 80
name: http
protocol: HTTP
hosts:
- "dev.example.com"
- "stage.example.com"
. При такой конфигурации я всегда получаю 404, поскольку шлюз приложения Azure не отправляет заголовок хоста.к шлюзу Istio Ingress и, следовательно, последний не понимает, на каком хосте он должен принимать!Однако я попытался добавить набор перезаписи для шлюза для отправки заголовка хоста, но поскольку настроенный backendpool является внутренним IP-адресом vnet, он не позволяет мне добавлять заголовки!Я даже пытаюсь добавить фильтр envoy lua на шлюз, чтобы получить X-Original-Host
и установить как Host
, но он не работает, так как запрос даже не достигает шлюза istio.Однако Istio не соблюдает X-Forwarded-Host
.
Поэтому, если коротко, я хотел бы отправить заголовки хостов с ApplicationGateway на шлюз Istio Ingress. Какой лучший способ сделать это!