为什么 Nginx proxy_pass to upper 有时会将传出请求发送到 IPv6?
2015/12/28 14:11:06 [error] 38194#0: *114469948 connect() failed (111: Connection refused) while connecting to upstream, client: xx.xxx.xx.xxx, server: example.com, request: "POST /suggest/ HTTP/1.1", upstream: "http://[AAAA:BBB:CCC:DDDD::E]:5555/suggestion", host: "example.com", referrer: "https://example.com/en/apple-111111/"
nginx.conf:
location /suggest/ {
proxy_pass http://testserver.com:5555/suggestion;
proxy_set_header Authorization 'Basic xxx';
}
请求不会发送到我们的 testserver.com,而是发送到http://[AAAA:BBB:CCC:DDDD::E]:5555/建议
有人知道 IPv6 地址来自哪里或者 nginx 配置出了什么问题吗?
谢谢汉斯的建议
以下是一个真实的例子:
2015/12/28 14:11:03 [error] 38192#0: *114552633 connect() failed (111: Connection refused) while connecting to upstream, client: xx.xx.xx.xxx, server: pixabay.com, request: "POST /suggest/ HTTP/1.1", upstream: "http://[2a01:4f8:160:4450::2]:5555/pixabay/suggestion", host: "pixabay.com", referrer: "https://pixabay.com/fr/"
以及 nginx.conf:
location /suggest/ {
proxy_pass http://pagewizz.com:5555/pixabay/suggestion;
proxy_set_header Authorization 'Basic xxx';
}
我们正在运行一个名为 Pixabay 的大型图像数据库。对于搜索,我们使用在另一台名为 Pagewizz (2a01:4f8:160:4450::2) 的服务器上运行的 elasticsearch。如果有人标记图像,我们会使用 elastic 来获取建议。我不知道为什么 Pagewizz 的 ipv6 地址会出现在 nginx 的错误日志中...