Nginx proxy_pass 到上游有时使用 IPv6 地址

Nginx proxy_pass 到上游有时使用 IPv6 地址

为什么 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 的错误日志中...

相关内容