GNU/Linux >> Tutoriales Linux >  >> Linux

Solución de problemas básicos de Nginx

Resolución de problemas básicos de Nginx

Este artículo muestra algunas soluciones básicas para Nginx, uno de los servidores HTTP más populares. El propósito es corregir algunos de los errores más comunes que pueden estar presentes en su configuración de Nginx.

Buscar errores de sintaxis o advertencias en la configuración

Mediante un simple comando puedes verificar el estado del archivo de configuración de Nginx:$ sudo systemctl config nginx La salida mostrará si el archivo de configuración es correcto o, si no lo es, mostrará el archivo y la línea donde está el problema.

$ sudo systemctl config nginx
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
$ sudo systemctl config nginx
"worker_connections" directive is not allowed here in /etc/nginx/nginx.conf:12
nginx: configuration file /etc/nginx/nginx.conf test failed

En caso de que no tenga el comando de servicio disponible en su sistema, puede optar por usar el -t Parámetro Nginx, que también prueba la sintaxis correcta del archivo de configuración y luego intenta abrir los archivos a los que se hace referencia en la configuración.$ sudo nginx -t

Compruebe que Nginx se está ejecutando

Para verificar el estado del servicio Nginx, puede usar el siguiente comando:$ sudo systemctl status nginx También puede usar los comandos genéricos para validar el estado del servicio:$ sudo /etc/init.d/nginx status

Verificar que los puertos estén abiertos y el servicio esté escuchando

Verifique que los puertos necesarios estén abiertos y para verificar que el servicio Nginx está escuchando a través de ellos, puede usar lsof comando, idealmente en los puertos predeterminados 80 y 443.

$ sudo lsof -i :80 -s TCP:LISTEN
nginx   1305 nginx    6u  IPv4 1613873      0t0  TCP *:http (LISTEN)
nginx   1305 nginx    7u  IPv6 1613874      0t0  TCP *:http (LISTEN)
nginx   1306 nginx    6u  IPv4 1613873      0t0  TCP *:http (LISTEN)
nginx   1306 nginx    7u  IPv6 1613874      0t0  TCP *:http (LISTEN)

Comprobar si Nginx procesa solicitudes

Si Nginx realmente está escuchando los puertos apropiados, el siguiente paso es verificar si está procesando solicitudes, lo que se puede hacer usando el curl herramienta usando la IP, URL o localhost si su configuración escucha en localhost:

$ curl -i http://127.0.0.1/nginx_status
HTTP/1.1 200 OK
Server: nginx/1.11.1
Date: Wed, 08 Aug 2021 11:36:43 GMT
Content-Type: text/plain
Content-Length: 97
Connection: keep-alive

Active connections: 1
server accepts handled requests
3 3 3
Reading: 0 Writing: 1 Waiting: 0

Verificar los registros

Verifique los últimos registros del servicio Nginx.$ sudo tail -f /var/log/nginx/access.log /var/log/nginx/error.log

Verificar permisos

Asegúrese de que Nginx tenga los permisos adecuados para acceder a los archivos necesarios.

$ namei -om /usr/share/nginx/html/index.html
f: /usr/share/nginx/html/index.html
drwxr-xr-x root root /
drwxr-xr-x root root usr
drwxr-xr-x root root share
drwxr-xr-x root root nginx
drwxr-xr-x root root html
-rw-r--r-- root root index.html

Recargar el servicio

En caso de que haya realizado cambios en el archivo de configuración que no se hayan aplicado, puede volver a cargar el servicio, iniciar nuevos procesos de Nginx y apagar suavemente los trabajadores antiguos para evitar un cierre rápido y agresivo.$ sudo service nginx reload Para un apagado rápido que no espere a que finalicen los procesos, puede reiniciar Nginx.$ sudo service nginx restart

Habilitar el modo de depuración

En el archivo de configuración (normalmente /etc/nginx/nginx.conf ) cambiar el nivel de registro para el error_log directiva:

server {
# stuff
error_log /var/logs/nginx/error.log debug;
# stuff
}

Puede depurar reglas de reescritura para ver los resultados del procesamiento en el registro de errores:

server {
# stuff
error_log /var/logs/nginx/error.log notice;
rewrite_log on;
# stuff
}

Verificar la resolución DNS

Reglas en /etc/hosts tienen prioridad sobre las resoluciones DNS. Puede verificar los registros DNS con:$ host -t A website.com También puede comprobar la resolución DNS completa:$ dig +trace website.com

Conclusiones

Estos son algunos pasos básicos de solución de problemas para algunos de los errores más comunes con Nginx. También puede confiar en la documentación si estos pasos no solucionan su problema, aprovechando la gran popularidad de Nginx.


Linux
  1. Solución de problemas de hardware en Linux

  2. Cómo usar Nginx para redirigir

  3. 5 comandos de solución de problemas de red de Linux

  4. Solución de problemas básicos del grupo de aplicaciones

  5. Solución de problemas básicos de Nginx

Autenticación HTTP básica con Nginx

Cómo habilitar TLS 1.3 en Nginx

Solución de problemas y trampas de SELinux

¿Cómo habilitar IPv6 en Nginx?

Instalar Nginx en Ubuntu 18.04

Cómo:Solución de problemas básicos de IPTables