Inscris-toi
(c'est gratuit !)
Un compte est nécessaire pour participer aux discussions.
Créer un compteDans cette partie nous allons mettre en place le lancement de l'application avec le serveur Gunicorn.
Pour ça, on va créer un fichier qu'on va lancer avec gunicorn :
from app import app
if __name__ == "__main__":
app.run()
Lancez cette commande dans votre terminal :
poetry run gunicorn --bind 0.0.0.0:5000 wsgi:app
Vous devriez pouvoir toujours accéder à votre application en ligne.
Nous allons ensuite créer un fichier avec systemd qui permet de lancer automatiquement gunicorn au lancement du serveur.
Cela nous permet de nous assurer que gunicorn sera toujours en fonctionnement, même si le serveur redémarre.
sudo vim /etc/systemd/system/flaskgpt.service
Pour trouver le chemin vers l'exécutable de gunicorn dans notre environnement Poetry, on peux utiliser la commande suivante :
$ poetry run which gunicorn
/home/ubuntu/.cache/pypoetry/virtualenvs/flaskgpt-Ws3bTzZd-py3.10/bin/gunicorn
Il ne reste plus qu'à créer le fichier :
[Unit]
Description=Instance Gunicorn pour le projet FlaskGPT
After=network.target
[Service]
User=ubuntu
Group=www-data
WorkingDirectory=/home/ubuntu/FlaskGPT
ExecStart=/home/ubuntu/.cache/pypoetry/virtualenvs/flaskgpt-Ws3bTzZd-py3.10/bin/gunicorn --workers 3 --bind unix:flaskgpt.sock wsgi:app
[Install]
WantedBy=multi-user.target
Explication de la commande :
--workers 3 : Ceci spécifie le nombre de processus ouvriers que Gunicorn doit utiliser. Plus il y a de travailleurs, plus l'application peut gérer de requêtes simultanément. Le choix du nombre de travailleurs dépend souvent des ressources disponibles sur la machine et du type de tâches effectuées par l'application.
--bind unix:flaskgpt.sock : Ceci lie Gunicorn à une socket Unix plutôt qu'à un port réseau. Une socket Unix permet une communication plus rapide et plus efficace entre différents services sur la même machine, mais n'est pas accessible à distance. Le fichier flaskgpt.sock sera créé dans le répertoire de travail actuel.
wsgi:app : Ceci indique à Gunicorn où trouver l'application WSGI qu'il doit exécuter. Ici, wsgi est le nom du module Python (généralement un fichier wsgi.py), et app est le nom de l'objet WSGI à l'intérieur de ce module.
On peut ensuite lancer le service avec les commandes suivantes :
sudo systemctl start flaskgpt
sudo systemctl enable flaskgpt
Et vérifier si tout fonctionne avec :
sudo systemctl status flaskgpt
Ce n'est pas fini...
Tu as complété % du parcours 🔥
Termine l'intégralité de la formation pour pouvoir débloquer ton attestation de réussite.