O Nginx config não pode ser recarregado. Tem "bind () para 0.0.0.0:80 falhou (98: Endereço já em uso)" erros [duplicados]

1

Eu tentei instalar um certificado HTTPS, e depois de bater com a cabeça na parede por algumas horas, percebi que o Nginx NÃO estava pegando as alterações que eu fiz nos arquivos de configuração do meu site contidos em /etc/nginx/sites-available/

Quando executo service nginx restart , ele é reiniciado. Quando executo nginx -t , a minha sintaxe está correta e meu teste de configuração foi bem-sucedido. No entanto, quando executo service nginx reload , recebo um erro que diz reload: Not running

Quando olho em /var/log/nginx/error.log , tenho esses erros.

2016/08/29 16:04:40 [emerg] 14744#14744: bind() to 0.0.0.0:80 failed (98: Address already in use)
2016/08/29 16:04:40 [emerg] 14744#14744: bind() to 0.0.0.0:443 failed (98: Address already in use)
2016/08/29 16:04:40 [emerg] 14744#14744: bind() to [::]:80 failed (98: Address already in use)
2016/08/29 16:04:40 [emerg] 14744#14744: bind() to 0.0.0.0:80 failed (98: Address already in use)
2016/08/29 16:04:40 [emerg] 14744#14744: bind() to 0.0.0.0:443 failed (98: Address already in use)
2016/08/29 16:04:40 [emerg] 14744#14744: bind() to [::]:80 failed (98: Address already in use)
2016/08/29 16:04:40 [emerg] 14744#14744: bind() to 0.0.0.0:80 failed (98: Address already in use)
2016/08/29 16:04:40 [emerg] 14744#14744: bind() to 0.0.0.0:443 failed (98: Address already in use)
2016/08/29 16:04:40 [emerg] 14744#14744: bind() to [::]:80 failed (98: Address already in use)
2016/08/29 16:04:40 [emerg] 14744#14744: bind() to 0.0.0.0:80 failed (98: Address already in use)
2016/08/29 16:04:40 [emerg] 14744#14744: bind() to 0.0.0.0:443 failed (98: Address already in use)
2016/08/29 16:04:40 [emerg] 14744#14744: bind() to [::]:80 failed (98: Address already in use)
2016/08/29 16:04:40 [emerg] 14744#14744: bind() to 0.0.0.0:80 failed (98: Address already in use)
2016/08/29 16:04:40 [emerg] 14744#14744: bind() to 0.0.0.0:443 failed (98: Address already in use)
2016/08/29 16:04:40 [emerg] 14744#14744: bind() to [::]:80 failed (98: Address already in use)
2016/08/29 16:04:40 [emerg] 14744#14744: still could not bind()

Depois de pesquisar no Google, passei por este comando netstat -plutn | grep 80 , o que me dá ...

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      14642/nginx: worker
tcp6       0      0 :::80                   :::*                    LISTEN      14642/nginx: worker

Eu não tenho ideia do que isso realmente significa, mas lendo, parece que o Nginx NÃO deveria estar rodando na porta 80? Nginx é meu servidor web, não quero que ele seja executado na porta 80?

Não sabe como proceder. Eu quero que o Nginx pegue as mudanças que eu fiz nos arquivos de configuração do meu site com o comando service nginx reload , e ao mesmo tempo eu hesito em apenas copiar / colar os comandos que eu encontrei na net já que eu tenho 10 sites hospedados neste servidor.

Onde estou indo errado? Eu tentei excluir o arquivo default na minha pasta sites-available , como alguns sugeriram, mas eu realmente não entendo qual é o problema e como corrigi-lo.

    
por Garrett Leyenaar 30.08.2016 / 01:22

2 respostas

1

O problema é fixo. Como Tim disse, eu corri o comando ps -ef | grep nginx e executei manualmente kill PID para todos os processos. Então eu corri service nginx restart e tudo funcionou bem. Quando eu executei service nginx reload , NÃO obtive um erro e meu certificado HTTPS agora funciona. Obrigado Tim e dmourati pela sua ajuda

    
por 30.08.2016 / 01:51
0

Soa como um problema com seu script de inicialização e com o local do arquivo pid para o nginx. Você pode matar manualmente o nginx da seguinte forma:

sudo kill 14642

Em seguida, inicie o nginx por meio do script de inicialização da seguinte forma:

sudo service nginx start

De lá, se você copiar / colar seu script de inicialização e o arquivo nginx.conf, tenho certeza que podemos encontrar o problema com o pid.

    
por 30.08.2016 / 01:26