Servidor Ubuntu reiniciado, site nginx não está mais acessível no navegador

Servidor Ubuntu reiniciado, site nginx não está mais acessível no navegador

Reiniciei meu servidor Ubuntu esta manhã porque estava tendo o que parecia ser um erro de pouca memória (acontece ocasionalmente, não foi um problema suficiente para tentar corrigi-lo). Mas agora, meu site (que antes funcionava bem) não está mais acessível no navegador.

A configuração: estou executando um site NuxtJS usando pm2 para daemonizá-lo e nginx como proxy reverso. Eu tenho um gancho git pós-recebimento para que possa enviar para meu repositório git remoto, que então reconstrói o aplicativo e reinicia a instância pm2.

Só consigo acessar meu site dedentro do servidor, dentro de uma janela de terminal. Lynx, wget e cURL funcionam e até seguem o redirecionamento 301 para HTTPS. E eles estão funcionando quando solicito o domínio em si, não apenas o localhost:3000 que está recebendo proxy reverso. Tipo, curl https://my-domain.orgfunciona. Se eu tentar curl/lynx/etc de qualquer outra janela do terminal, ele apenas esperará até o tempo limite. O mesmo acontece com o navegador – espera até o tempo limite.

Aqui estão as coisas que eu tentei/observei:

  • Estou usando o UFW, então verifiquei se o firewall era o problema. Mas 80, 443 e 8080 estão todos configurados para PERMITIR.
  • Tentei ver se talvez o nginx não estivesse ouvindo de alguma forma, então tentei sudo lsof -i -P -n | grep LISTEN. Aqui está o resultado disso:
nginx     2896     root    6u  IPv4 668673557      0t0  TCP *:443 (LISTEN)
nginx     2896     root    7u  IPv4 668673558      0t0  TCP *:80 (LISTEN)
nginx     2897 www-data    6u  IPv4 668673557      0t0  TCP *:443 (LISTEN)
nginx     2897 www-data    7u  IPv4 668673558      0t0  TCP *:80 (LISTEN)
nginx     2898 www-data    6u  IPv4 668673557      0t0  TCP *:443 (LISTEN)
nginx     2898 www-data    7u  IPv4 668673558      0t0  TCP *:80 (LISTEN)
  • Tentei verificar o access.log do nginx. Todas as minhas solicitações curl/wget/Lynx estão aparecendo normalmente, mas nenhuma das solicitações do navegador está aparecendo. Também dei uma olhada no error.log e descobri o seguinte:
2021/07/31 11:51:52 [emerg] 885#885: bind() to 0.0.0.0:443 failed (98: Address already in use)
2021/07/31 11:51:52 [emerg] 885#885: bind() to 0.0.0.0:80 failed (98: Address already in use)
2021/07/31 11:51:52 [emerg] 885#885: bind() to 0.0.0.0:443 failed (98: Address already in use)
2021/07/31 11:51:52 [emerg] 885#885: bind() to 0.0.0.0:80 failed (98: Address already in use)
2021/07/31 11:51:52 [emerg] 885#885: still could not bind()

Até agora, não encontrei nenhuma solução. Estou perplexo, porque o que quer que tenha mudado, mudou por causa de uma reinicialização. Quaisquer ideias são muito apreciadas.

EDIT para adicionar alguma saída:

sudo systemctl status nginx:

● nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2021-07-31 15:05:53 EDT; 27min ago
  Process: 6834 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid (code=exited, status
  Process: 6840 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
  Process: 6837 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
 Main PID: 6841 (nginx)
   CGroup: /system.slice/nginx.service
           ├─6841 nginx: master process /usr/sbin/nginx -g daemon on; master_process on
           ├─6842 nginx: worker process                           
           └─6843 nginx: worker process                           

Jul 31 15:05:53 parrot systemd[1]: Starting A high performance web server and a reverse proxy server...
Jul 31 15:05:53 parrot systemd[1]: Started A high performance web server and a reverse proxy server.

A saída de sudo nginx -Té longa, entãoEu fiz disso uma essência.

Responder1

Isso é tão estúpido que não sei por que foi um problema, então qualquer opinião sobre isso será apreciada. Minhas ufwconfigurações foram/são as seguintes:

Status: active

To                         Action      From
--                         ------      ----
22                         ALLOW       Anywhere                  
80/tcp                     ALLOW       Anywhere                  
443/tcp                    ALLOW       Anywhere                  
80                         ALLOW       Anywhere                  
8080                       ALLOW       Anywhere                  
22 (v6)                    ALLOW       Anywhere (v6)             
80/tcp (v6)                ALLOW       Anywhere (v6)             
443/tcp (v6)               ALLOW       Anywhere (v6)             
80 (v6)                    ALLOW       Anywhere (v6)             
8080 (v6)                  ALLOW       Anywhere (v6) 

Alguns anos 80 redundantes, mas eu estava adicionando coisas extras para ver se ajudava.

Alguém recomendou que eu tentasse desabilitar o ufw, só para ter certeza de que não era esse o problema. Aparentemente, foi. Desativei, o site imediatamente começou a funcionar, e quando reativei, esperando que voltasse a quebrar, ele... ainda funciona. Então, algo sobre o ufw precisava ser reativado quando eu reiniciei o servidor.

EDIT: Isso pode ser por causa do iptables-persistent, que é instalado automaticamente na maioria dos servidores, eu acho? Parece que éo mesmo problema que esta resposta SO.

informação relacionada