Reinicié mi servidor Ubuntu esta mañana porque tenía lo que parecía ser un error de poca memoria (sucede ocasionalmente, no ha sido un problema suficiente para intentar solucionarlo). Pero ahora, ya no se puede acceder a mi sitio (que antes funcionaba bien) desde el navegador.
La configuración: estoy ejecutando un sitio NuxtJS usando pm2 para demonizarlo y nginx como proxy inverso. Tengo un gancho de git posterior a la recepción para poder enviarlo a mi repositorio de git remoto, que luego reconstruye la aplicación y reinicia la instancia de pm2.
Sólo puedo acceder a mi sitio desdedentro del servidor, dentro de una ventana de terminal. Lynx, wget y cURL funcionan e incluso siguen la redirección 301 a HTTPS. Y están funcionando cuando solicito el dominio en sí, no solo el localhost:3000 que recibe proxy inverso. Como en, curl https://my-domain.org
funciona. Si intento curl/lynx/etc desde cualquier otra ventana de terminal, simplemente espera hasta que se agote el tiempo de espera. Lo mismo ocurre con el navegador: espera hasta que se agote el tiempo de espera.
Estas son las cosas que he probado/mirado:
- Estoy usando UFW, así que verifiqué si el problema era el firewall. Pero 80, 443 y 8080 están configurados en PERMITIR.
- Intenté ver si tal vez nginx no estaba escuchando de alguna manera, así que lo intenté
sudo lsof -i -P -n | grep LISTEN
. Aquí está el resultado de eso:
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)
- Intenté comprobar el archivo access.log de nginx. Todas mis solicitudes curl/wget/Lynx se muestran normalmente, pero ninguna de las solicitudes del navegador aparece. También eché un vistazo al error.log y obtuve esto:
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()
Hasta ahora no he encontrado ninguna solución. Estoy desconcertado, porque lo que sea que haya cambiado, cambió debido a un reinicio. Cualquier idea es bien apreciada.
EDITAR para agregar algún resultado:
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.
La salida de sudo nginx -T
es larga, por lo queLo hice una esencia.
Respuesta1
Esto es tan estúpido que no sé por qué fue un problema, por lo que se agradece cualquier opinión al respecto. Mis ufw
configuraciones fueron/son las siguientes:
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)
Algunos 80 redundantes ahí, pero estaba agregando cosas adicionales para ver si ayudaba.
Alguien me recomendó que intentara desactivar ufw, sólo para asegurarme de que no fuera ese el problema. Al parecer así fue. Lo desactivé, el sitio comenzó a funcionar inmediatamente y cuando lo volví a habilitar, esperando que volviera a fallar,... todavía funciona. Entonces, era necesario reactivar algo sobre ufw cuando reinicié el servidor.
EDITAR: Esto puede deberse a iptables-persistent, que supongo que se instala automáticamente en la mayoría de los servidores. Parece que esel mismo problema que esta respuesta SO.