如何解决使用 envoy,在 nginx 中使用集群 IP 和 fqdn 作为 proxy_pass 的地址有什么不同?
我正在尝试在 Kubernetes 1.20.2(内部部署)上测试 Istio 1.9
首先,当Nginx proxy_pass有tomcat部署服务的fqdn时
location / {
proxy_pass http://tomcat.default.svc.cluster.local:8080;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
虽然显示 404 错误,但它不起作用,我在 Nginx pod 中找不到任何从 tcpdump 到 tomcat 的 tcp 数据包。
其次,如果我把proxy_pass中的fqdn改成tomcat pod的clusterIP或者pod IP,效果很好。
最后,如果我删除注入 nginx 的 istio sidecar(envoy),它可以与 proxy_pass 中的 fqdn 一起使用。
在这种情况下,当fqdn与envoy一起使用时,为什么proxy_pass不起作用? Nginx 与 envoy 有什么必要的配置吗?
鉴于 clusterIP 可以更改,我可以预期 fqdn 会被普遍使用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。