Yo uso nginx como proxy inverso. Cada vez que actualizo la configuración para usar
sudo "cp -r #{nginx_config_path}* /etc/nginx/sites-enabled/"
sudo "kill -s HUP `cat /var/run/nginx.pid`"
Me enfrento a un breve tiempo de inactividad. ¿Cómo puedo evitar eso?

sites-enabled, no copiarlo. No está relacionado con su problema particular, pero es posible que desee analizarlo.kill HUPes la forma de hacer una recarga elegante en nginx.Respuestas:
Correr
service nginx reloado/etc/init.d/nginx reloadHará una recarga en caliente de la configuración sin tiempo de inactividad. Si tiene solicitudes pendientes, habrá procesos nginx persistentes que manejarán esas conexiones antes de que muera, por lo que es una forma extremadamente elegante de recargar configuraciones.
A veces es posible que desee anteponer
sudofuente
SIGHUPal proceso maestro nginx. No debería haber una diferencia. nginx.org/en/docs/control.htmlcat $PIDFILE|| echo -n "no se puede recargar"service nginx reloadynginx -s reload? Si ejecuto el primero, obtengo este resultado:Reloading nginx configuration: nginx.pero mis cambios no se actualizan. Si ejecuto este último, no obtengo salida, pero mis cambios se reflejan.log_not_founddirectiva, pero descubrí que tenía que reiniciar para que funcione. ¿Supongo que la recarga no funciona para todas las directivas?correr
/usr/sbin/nginx -s reloadConsulte http://wiki.nginx.org/CommandLine para obtener más opciones de línea de comandos.
fuente
No, usted es incorrecto, se supone que no debe enfrentar ningún tiempo de inactividad con el procedimiento que describe. (Nginx no solo puede recargar la configuración sobre la marcha sin ningún tiempo de inactividad, sino incluso la actualización del ejecutable sobre la marcha, aún sin ningún tiempo de inactividad).
Según http://nginx.org/docs/control.html#reconfiguration , enviar la
HUPseñal a nginx asegura que se realice un reinicio correcto y, si los archivos de configuración son incorrectos, se abandona todo el procedimiento y usted " se queda con el nginx como antes de enviar laHUPseñal. En ningún momento debe ser posible ningún tiempo de inactividad.fuente
Por lo general, la recarga del archivo de configuración de un servicio no debería afectar el servicio en ejecución. Sin embargo, esto depende de cómo
SIGHUPse procese la señal.Si un servicio específico está experimentando un tiempo de inactividad durante la recarga, esto puede evitarse ejecutando el mismo servicio en varios servidores, preferiblemente utilizando un equilibrador de carga. En este caso, puede sacar un servidor a la vez y volver a cargarlo / reiniciarlo. Luego, se puede volver a agregar después de confirmar que está bien.
fuente