从ubuntu 14.04升级到16.04之后,nginx错误502:坏网关,直到重新启动nginx

前端之家收集整理的这篇文章主要介绍了从ubuntu 14.04升级到16.04之后,nginx错误502:坏网关,直到重新启动nginx前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经研究过这个问题,但在大多数情况下,502错误的原因是配置不正确的Nginx.conf或上游服务.我相信这是不同的..

正如标题所示,我将ubuntu服务器14.04升级到16.04.我使用Nginx作为我的Web服务器,并且还运行java / tomcat服务器,在我的Nginx配置中设置为proxy_pass.

升级以来,每次服务器启动时,Nginx在尝试连接到proxy_pass站点时都会显示错误502:Bad Gateway.我的配置中指定的所有其他站点按预期工作.

是否可能启动服务的顺序可能导致持续的502错误

解决这个问题,我必须sudo systemctl restart Nginx,之后,proxy_pass服务按预期工作,直到下次重启.

来自error.log:

2018/01/24 11:33:20 [error] 1886#1886: *202 connect() Failed (111: Connection refused) while connecting to upstream,client: 10.0.0.1,server: localhost,request: "GET /radio/rest2/savePlayQueue.view?u=user&p=enc:xxxxxxxx&v=2.0.0&c=DSub&id=0000&current=0000&position=0 HTTP/1.1",upstream: "http://[::1]:4040/radio/rest2/savePlayQueue.view?u=user&p=enc:xxxxxxxx&v=2.0.0&c=DSub&id=0000&current=0000&position=0",host: "www.myhostname.tld"

Nginx生成错误时,我能够使用该服务器中的lynx连接到localhost:4040 / radio,并提供相应的内容.即使在此之后,通过Nginx连接时仍然存在502错误.

没有为此定义的上游块,但是位置块是:

location ^~ /radio/ {
        proxy_pass              http://localhost:4040;
        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_http_version      1.1;
        proxy_set_header        Connection      "";
#        health_check;       # Nginx: [emerg] unknown directive "health_check"
}

我不希望每次启动时都重启Nginx.我该如何解决这个问题?

上游:“http:// [:: 1]:4040 / …

您的上游可能只侦听IPv4 localhost(127.0.0.1:4040),而Nginx正在尝试连接到IPv6 localhost([:: 1]:4040).

lynx的作用是因为它同时尝试了.

GUESS:Nginx可能会失败,因为它在开始时尝试两者,都失败,然后从那里开始坚持使用IPv6.

FIX:更改上游以显式使用127.0.0.1或更改上游以侦听IPv4和IPv6.

猜你在找的Ubuntu相关文章