python nginx flask gunicorn

plot title python



¿Cuál es la forma correcta de dejar gunicorn corriendo? (8)

Quiero hacer un despliegue de Flask + Nginx + Gunicorn. Tengo la configuración y ejecución de Nginx y ejecuto gunicorn como se describe en los documentos:

gunicorn app:app

Pero cuando me desconecto del servidor, ¿sale el proceso de gunicorn? ¿Cuál es la forma correcta de asegurarse de que se mantenga en ejecución para que Nginx se conecte y se reinicie si se bloquea?


Ejecutando hug api como este.

--daemon es mantener el proceso en segundo plano.

--access-logfile para mantener el registro de solicitud

--bind = <ip>: <port> Dar IP permitirá acceder desde otros sistemas (si no se necesita proxy).

gunicorn <pyscirpt_name>:__hug_wsgi__ --name caassist -w 4 --access-logfile /var/logs/gunicorn/gunicorn_access.log --daemon --bind=<ip>:<port>


La clave a tener en cuenta es que cuando inicia el proceso desde la línea de comandos es un elemento secundario de su proceso terminal (es decir, un elemento secundario de bash ). Cuando se cierra la sesión del servidor, su proceso de bash finaliza, al igual que todos sus hijos.

Usted querrá usar cualquier sistema que tenga instalado para administrar nginx, también administre gunicorn (desde guiones init.d o Upstart hasta monitores de procesos de aplicación especializados como Monit, Supervisor, Bluepill, Foreman, etc.)



Presta atención a Sean.

Sin embargo, puedes ejecutarlo sobre la marcha de esta manera:

nohup gunicorn -c config.py </dev/null >/dev/null 2>&1 y ya no dependerá de la conexión del terminal. Podría reemplazar >/dev/null con algo como >somelogfile si desea guardar cualquier salida.

Pero para el uso en producción, lo mejor es integrarlo en cualquier herramienta que use para administrar procesos.



Prueba esto:

nohup gunicorn app:app &


Use la opción --daemon mientras ejecuta gunicorn. Ejemplo:

gunicorn grand56.wsgi:application --name grand56 --workers 3 --user=root --group=root --bind=127.0.0.1:1001 --daemon


usa --daemon para el comando de enlace de gunicorn. ex:

gunicorn --bind 0.0.0.0:8001 your_project.wsgi --daemon