Eu pesquisei esse problema, mas na maioria dos casos a causa do erro 502 é um serviço nginx.conf ou upstream configurado incorretamente. Eu acredito que isso é diferente ..
Como o título sugere, eu atualizei o servidor Ubuntu 14.04 para 16.04. Eu uso o nginx como meu servidor web, e também estou executando um servidor java / tomcat, configurado na configuração nginx como proxy_pass.
Desde a atualização, toda vez que o servidor é iniciado, o nginx exibe o erro 502: Bad Gateway
ao tentar se conectar ao site proxy_pass. Todos os outros sites especificados na minha configuração funcionam conforme o esperado.
É possível que a ordem na qual os serviços são iniciados possa causar um erro persistente de 502?
Para resolver o problema, devo sudo systemctl restart nginx
, após o qual o serviço proxy_pass funciona como esperado, até a próxima reinicialização.
Do 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¤t=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¤t=0000&position=0", host: "www.myhostname.tld"
No momento em que esse erro foi gerado pelo nginx, consegui usar o lynx desse servidor para conectar-me ao localhost: 4040 / radio e recebi o conteúdo apropriado. Mesmo depois disso, o erro 502 permanece ao se conectar através do nginx.
Não há bloco upstream definido para isso, no entanto, o bloco de localização é:
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"
}
Eu não quero ter que reiniciar o nginx toda vez que eu inicializo. Como posso resolver este problema?