J'ai une petite application écrite en Python en utilisant Flask. En ce moment je l'utilise sous nohup, mais je voudrais le démoniser. Quelle est la bonne façon de faire cela?Comment démoniser une application Flask?
Répondre
There are several ways to deploy a Flask project. Déploiement avec gunicorn pourrait être le plus facile, installez gunicorn puis:
gunicorn project:app --daemon
Bien que vous voulez probablement utiliser superviseur ou quelque chose de cette nature pour surveiller gunicorn (à tout le moins utiliser --pid
de sorte que vous pouvez recharger/arrêter gunicorn facilement).
Si vous avez déjà installé le superviseur, je pense que gunicorn serait un peu redondant. Ce qui suit est un fichier flask.ini qui peut être déposé dans /etc/supervisord.d/ (ensuite "supervisorctl reload" pour recharger la configuration et démarrer le processus).
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 vous souhaitez surveiller et maintenir persistant à travers les redémarrages, vous pouvez utiliser immortal
Vous pouvez l'appeler comme ceci:
immortel -l/var/log/votre- app projet gunicorn: app
Ou par run.yml, par exemple:
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
En savoir plus sur immortal: https://immortal.run/about/
- 1. Meilleure façon de démoniser une application Java sous Linux
- 2. Twisted UDP Server - démoniser?
- 3. Application web Flask (Python 2.7)
- 4. python - démoniser le script bottlepy
- 5. application de chat navigateur dans Flask
- 6. Application de bureau Flask, html et javascript
- 7. Flask: Utilisation de plusieurs packages dans une seule application
- 8. Application Flask utilisant WTForms avec SelectMultipleField
- 9. Flask, Nginx, uWSGI Python Application introuvable
- 10. Utilisation de python, démoniser un processus
- 11. Flask: Comment lire une entrée de flux
- 12. Flask-Principal, Flask-Login, remember_me et identity_loaded
- 13. Comment déboguer Flask BuildError
- 14. Fonction Flask permettant d'appeler d'autres fonctions Flask dans la même application?
- 15. Flask: Comment s'authentifier avec Flask-Redis et Redis
- 16. Flask - comment combiner Flask-WTF et Flask-SQLAlchemy pour éditer des modèles db?
- 17. Flask destructor
- 18. Comment retourner un fichier html brut dans une application Flask en ignorant les transformations de modèle
- 19. Comment configurer une application python basée sur Flask en utilisant nginx et uwsgi?
- 20. Intégrer un shell Bash dans mon application Flask?
- 21. Comment utiliser APSW avec Flask
- 22. Comment Flask charge blueprint interne?
- 23. Structure d'une application Flask avec plus d'un models.py
- 24. Documentation Sphinx à l'intérieur d'une application Web Flask exécutée
- 25. Comment html entrée à Flask?
- 26. Flask: Comment supprimer les cookies?
- 27. Comment déployer l'application Flask sur Webfaction?
- 28. Déploiement d'une application Flask pour l'hébergement à godaddy
- 29. Déploiement d'une application Flask à l'aide de Coller
- 30. blueprint de plans (Flask)
Notez qu'avec cette configuration, vous utilisez le serveur intégré Flask, qui ne s'évalue pas correctement. –