Tengo una pequeña aplicación escrita en Python usando Flask. Ahora mismo lo estoy ejecutando bajo nohup, pero me gustaría demonizarlo. ¿Cuál es la forma correcta de hacer esto?¿Cómo se demoniza una aplicación Flask?
Respuesta
There are several ways to deploy a Flask project. Desplegar con gunicorn podría ser el más fácil, instale gunicorn y luego:
gunicorn project:app --daemon
Aunque es probable que desee utilizar supervisor o algo por el estilo para controlar gunicorn (por lo menos usar --pid
para que pueda recargar/parada gunicorn facilidad)
Si tiene instalado el supervisor ya, creo gunicorn sería un poco redundante. El siguiente es un archivo flask.ini que puede soltarse en /etc/supervisord.d/ (luego, "supervisorctl reload" para volver a cargar la configuración e iniciar el proceso).
command=/opt/flask/env0/bin/python /opt/flask/developer/FlaskWebServer.py
directory=/opt/flask
redirect_stderr=true
startsecs=5
autorestart=true
stdout_logfile=/opt/flask/flask.stdout.log
Si desea supervisar y mantenerlo mantenga al reiniciar, se puede usar immortal
Se le podría llamar así:
inmortal -l/var/log/tu- proyecto de aplicación gunicorn: app
O vía run.yml, por ejemplo:
cmd: gunicorn project:app
cwd: /path/of/project
env:
DEBUG: 1
ENVIRONMENT: production
log:
file: /var/log/app.log
age: 86400 # seconds
num: 7 # int
size: 1 # MegaBytes
timestamp: true # will add timesamp to log
stderr:
file: /var/log/app-error.log
age: 86400 # seconds
num: 7 # int
size: 1 # MegaBytes
timestamp: true # will add timesamp to log
user: www
Más información sobre inmortal: https://immortal.run/about/
- 1. ¿Cómo organizar una aplicación Flask relativamente grande?
- 2. Unidad probando una clase de aplicación Flask
- 3. Despliegue de una aplicación Flask con CGI
- 4. ¿Cómo implementar la aplicación Flask en Webfaction?
- 5. ¿Cómo se configura una aplicación Flask con SQLAlchemy para realizar pruebas?
- 6. ¿Cómo se obtiene una cadena de consulta en Flask?
- 7. ¿Dónde pongo el código de limpieza en una aplicación Flask?
- 8. ¿Cómo se hace un componente reutilizable con Flask-SQLAlchemy?
- 9. Flask long routines
- 10. IE9 cuelga una instancia local de Flask
- 11. Activos específicos de planos en Flask utilizando Flask-Assets?
- 12. En Flask, ¿por qué funciona esta aplicación hello world?
- 13. Agregue dinámicamente reglas de URL a la aplicación Flask
- 14. Flask-SQLAlchemy: cómo insertar o actualizar condicionalmente una fila
- 15. Cómo cargar desde más de una template_folder para Flask blueprint?
- 16. Usando Flask Blueprints, ¿cómo arreglar url_for para que no se rompa si se especifica un subdominio?
- 17. flask-login: no puedo entender cómo funciona
- 18. ¿Cómo renderizar etiquetas en Flask/GAE?
- 19. Frasco: ¿cómo puedo combinar Flask-WTF y Flask-SQLAlchemy para editar modelos db?
- 20. ¿Cómo evitar que se desinstale una aplicación?
- 21. ¿Cómo se prueba una aplicación WP7?
- 22. ¿Cómo se actualiza una aplicación de inicio?
- 23. ¿Cómo se distribuye una aplicación .NET?
- 24. Uso de MySQL en Flask
- 25. Flask y Mongo
- 26. ¿Cuál es la mejor forma de implementar una aplicación Flask usando Jython en Tomcat?
- 27. ¿Cómo extender una plantilla base Flask Jinja desde una plantilla Blueprint?
- 28. Frasco: Usar varios paquetes en una aplicación
- 29. Cómo almacenar credenciales de manera segura por sesión en Flask
- 30. En Flask, configure una cookie y luego redirija al usuario
Tenga en cuenta que con esta configuración está ejecutando el servidor integrado Flask, que no se escala correctamente. –