CH-J Server Managergestión de servidores a través de SSH
Menú
Todos los tutoriales y artículos →

Cómo administrar NGINX sin dejar el sitio web fuera de servicio

Haz una copia de seguridad de la configuración, compruébala con nginx -t, aplícala con una recarga gradual y restaura la anterior si algo falla.

Recarga en lugar de reiniciar

Una recarga indica a NGINX que vuelva a leer la configuración. Inicia nuevos procesos de trabajo y deja que los antiguos terminen las solicitudes pendientes, por lo que los visitantes normalmente no notan nada. Si no se puede aplicar la nueva configuración, NGINX sigue funcionando con la anterior. Un reinicio detiene primero el servicio, interrumpiendo las conexiones, y puede que no consiga volver a iniciarlo si la configuración es incorrecta.

Haz una copia del archivo que vayas a cambiar

Antes de editar, crea una copia junto al archivo e incluye la fecha en su nombre. No dejes copias en un directorio que NGINX cargue mediante un patrón con comodines como conf.d/*.conf o sites-enabled/*, porque también las cargaría. En Debian y Ubuntu, edita el archivo de sites-available; la entrada de sites-enabled suele ser solo un enlace a él.

sudo cp -a /etc/nginx/sites-available/example.conf /root/example.conf.$(date +%Y%m%d-%H%M%S)

Primero comprueba, luego recarga

nginx -t comprueba la sintaxis y los archivos a los que hace referencia la configuración, como los certificados. Usa nginx -T para ver la configuración completa tras incorporar los archivos incluidos. Recarga solo si la prueba se supera; unir los comandos con && lo garantiza. La prueba no puede determinar si la configuración hace lo que pretendías, así que abre el sitio web después.

sudo nginx -t && sudo systemctl reload nginx
sudo nginx -T | less
curl -I https://example.com/

Cuando algo falla

Restaura la copia de seguridad, vuelve a comprobar y recarga. Si el servicio se ha detenido, el registro de errores y el journal te indicarán el motivo. Busca mensajes sobre un puerto ya ocupado, un certificado que falta o un nombre de servidor duplicado.

sudo cp -a /root/example.conf.20261031-120000 /etc/nginx/sites-available/example.conf
sudo nginx -t && sudo systemctl reload nginx
sudo journalctl -u nginx -n 50 --no-pager
sudo tail -n 50 /var/log/nginx/error.log

Qué no cubre una recarga

Las conexiones de larga duración, como WebSockets, permanecen en los procesos de trabajo antiguos hasta que terminan, por lo que estos pueden seguir ejecutándose durante un tiempo y consumir memoria adicional. Una actualización de un paquete puede reiniciar el servicio por su cuenta. Prueba primero los cambios importantes en un servidor de pruebas, incluidos los certificados y las redirecciones.

NGINX Manager en CH-J Server Manager

NGINX Manager edita archivos de configuración en los directorios de NGINX administrados en servidores Linux, de hasta 512 KiB por archivo. Al guardar, la aplicación crea una copia de seguridad con el sufijo .chj-backup-, ejecuta nginx -t y conserva el cambio solo si la prueba se supera. La recarga requiere tu confirmación explícita y vuelve a ejecutar la prueba antes de comenzar. No se sustituye un enlace simbólico habilitado; edita el archivo correspondiente en sites-available.

Documentación detallada

NGINX: Controlling nginx →

NGINX: Beginner's Guide →

Seguridad y desbloqueo biométrico →