Nginx代理传递-禁用ipv6

Nginx代理传递-禁用ipv6,nginx,reverse-proxy,ipv6,ipv4,proxypass,Nginx,Reverse Proxy,Ipv6,Ipv4,Proxypass,我的nginx配置如下: server { listen 127.0.0.1:8080; server_name 127.0.0.1; client_max_body_size 20m; include /etc/nginx/conf.d/services/*.conf; # redirect server error pages to the static page /50x.html

我的nginx配置如下:

server {
listen       127.0.0.1:8080;
server_name  127.0.0.1;

client_max_body_size 20m;

include /etc/nginx/conf.d/services/*.conf;

# redirect server error pages to the static page /50x.html                                                                                                                                              
#                                                                                                                                                                                                       
error_page   500 /500.json;
error_page   501 /501.json;
error_page   502 /502.json;
error_page   503 /503.json;
error_page   504 /504.json;
error_page   404 /404.json;

location = /500.json {
    root   /opt/lj/nginx;
}
location = /501.json {
    root   /opt/lj/nginx;
}
location = /502.json {
    root   /opt/lj/nginx;
}
location = /503.json {
    root   /opt/lj/nginx;
}
location = /504.json {
    root   /opt/lj/nginx;
}
location = /404.json {
    root  /opt/lj/nginx;
}
}
在conf.d/services目录中,我有一个包含以下内容的文件:

location /api/auth {proxy_pass     http://127.0.0.1:8081;}
我有一个上游进程在8081上监听请求。几乎准确地说,2到3次,请求被适当重定向,但每三次,我都会出现以下错误:

2014/10/09 03:03:52 [alert] 4572#0: *16 socket() failed (97: Address family not supported by protocol) while connecting to upstream, client: 127.0.0.1, server: 127.0.0.1, request: "GET /api/auth/1.0/companies/1/clients HTTP/1.1", upstream: "http://[::1]:8081/api/auth/1.0/companies/1/clients", host: "localhost:8080"
我不知道如何使nginx只转发到上游理解的IPv4地址

访问日志:(请注意,三次尝试中有一次会导致500次,其余的则会通过)

任何帮助都将不胜感激!谢谢。

也许您的配置中有“localhost”而不是“127.0.0.1”。您可以指定冲突解决程序并将ipv6设置为off

resolver 8.8.8.8 4.2.2.2 ipv6=off;
如果端口8081上的Web服务也在nginx上,那么为此启用IPv6可以解决问题

server {
    listen 8081;
    listen [::]:8081;
    ....
}
我也有同样的问题。 更改Ipv6only=on==>至==>仅IPV6=关闭对我不起作用。 当我完全移除“Ipv6only=off/on”时,它开始像魅力一样工作了


尝试删除以将其完全删除并重新加载nginx服务。

您好,很抱歉,我在哪里可以找到ports.conf文件这不可能是整个配置。还可以查看包含的文件。
server {
    listen 8081;
    listen [::]:8081;
    ....
}