在istio service mesh中使用nginx反向代理
2022-8-8
nginx反向代理的请求, 和我们直接请求有一定的区别, 比如:
http version #
nginx proxy 发出的反向代理请求的http version默认是: 1.0, 但是istio支持1.1 & 2.0, 所以如果不增加http版本限制的话istio就无法进行报文解析, 也就无法应用istio-proxy(sidecar)L7层代理策略, 我们知道istio流量治理是基于L7层的.
http header: Host #
有时候nginx发出的代理请求的http header中host的值, 不能保证是上游服务的host name. 在这种情况下, 是没办法匹配上游服务在istio-proxy中的L7流量治理的配置.
怎么解决? #
所以, 需要在nginx代理配置处增加两项配置:
...
location / {
proxy_http_version 1.1; <-
proxy_set_header Host <upstream-host>; <-
proxy_pass http://<upstream-host>:8080;
}
...
即可.