- Un serveur avec accès SSH
- Serveur Web Nginx exécuté sur le serveur (installation couverte)
- Python
- Vous êtes un utilisateur sudo.
Configuration du serveur
Commençons maintenant à définir l'environnement du serveur que nous utiliserons pour héberger notre serveur. Ce tutoriel utilise le serveur Ubuntu. Commencez par mettre à jour les référentiels et installer Python3 et Pip.
sudo apt-get mise à joursudo apt-get upgrade -y
sudo apt-get install python3 python3-pip -y
Ensuite, nous devons créer un répertoire pour stocker le projet.
sudo mkdir /var/www/applicationcd /var/www/application
Modifier la propriété et les autorisations du répertoire :
sudo chown -R www-data:www-data /var/www/application/Ensuite, installez les packages en utilisant apt (flask et Gunicorn)
sudo apt-get install python3-flask python3-gunicornPassons maintenant à l'initialisation d'une application flask. Commencez par créer le principal.py-contient l'application-et wsgi.py, qui lancera l'application.
sudo touch principal.py wsgi.pyModifier le principal.py et configurez votre application Flask et toutes les routes. Puisque ce tutoriel n'est pas un guide Flask, nous allons mettre en place un itinéraire de base et un message hello world.
de l'importation du flacon Flaconapp = Flacon (__nom__)
@app.route("/")
def home() :
revenir "
Nginx & Gunicorne
"Modifier le wsgi.py et ajoutez le code pour importer l'application, et exécutez-le en tant que :
depuis l'application d'importation principaleif __name__ == "__main__":
application.run(debug=True)
Enfin, testez s'il est opérationnel en appelant flask en tant que :
$ exécution de la fiole* Environnement : fabrication
ATTENTION : Ceci est un serveur de développement. Ne l'utilisez pas dans un déploiement de production.
Utilisez plutôt un serveur WSGI de production.
* Mode de débogage : désactivé
* Fonctionnant sur http://127.0.0.1:5000/ (Appuyez sur CTRL+C pour quitter)
Essayez d'accéder à l'application sur http://localhost:5000.
Configurer Gunicorne
Une fois notre application exécutée avec succès, nous pouvons utiliser Gunicorn pour tester l'application à l'aide des commandes :
$ sudo gunicorn --workers 5 wsgi:app[2021-03-19 09:19:34 +0000] [14047] [INFO] Démarrage de gunicorn 20.0.4
[2021-03-19 09:19:34 +0000] [14047] [INFO] Écoute sur : http://127.0.0.1:8000 (14047)
[2021-03-19 09:19:34 +0000] [14047] [INFO] Utilisation du travailleur : sync
[2021-03-19 09:19:34 +0000] [14049] [INFO] Amorçage du travailleur avec pid : 14049
[2021-03-19 09:19:34 +0000] [14050] [INFO] Boot worker avec pid: 14050
[2021-03-19 09:19:34 +0000] [14051] [INFO] Boot worker avec pid: 14051
[2021-03-19 09:19:34 +0000] [14052] [INFO] Boot worker avec pid: 14052
[2021-03-19 09:19:35 +0000] [14053] [INFO] Amorçage du travailleur avec pid : 14053
Les commandes ci-dessus exécute l'application de flacon à l'aide de Gunicorn en utilisant le nombre spécifié de travailleurs. Nous appelons ensuite le fichier wsgi:app, qui est le fichier et l'instance de l'application à exécuter.
Une fois que vous avez exécuté l'application à l'aide de Gunicorn, appuyez sur CTRL + C pour arrêter le serveur et configurer Nginx.
Utilisez les commandes ci-dessous pour installer et exécuter Nginx.
sudo apt-get install nginx -ysudo systemctl démarrer nginx
sudo systemctl activer nginx
L'étape suivante consiste à modifier la configuration Nginx dans le répertoire sites-enabled et à ajouter le bloc de serveur. Considérez la configuration suivante. Remplacez l'application par le nom de votre projet.
sudo nano /etc/nginx/sites-available/application.confserveur
écouter 80 ;
application nom_serveur ;
access_log /var/log/nginx/application.accès.Journal;
error_log /var/log/nginx/application.Erreur.Journal;
emplacement /
inclure proxy_params ;
proxy_pass http://unix:/var/www/application/application.chaussette;
Procédez à la création d'un lien vers le répertoire activé pour le site pour activer le site Web.
sudo ln -s /etc/nginx/sites-available/application.conf /etc/nginx/sites-enabled/Redémarrez maintenant le service Nginx en tant que :
sudo systemctl redémarrer nginxEnsuite, nous devons créer un fichier d'unité systemd pour servir l'application.
sudo nano /etc/systemd/system/application.un service[Unité]
Description=application.service - Une application Flask exécutée avec Gunicorn.
Après=réseau.cible
[Un service]
Utilisateur = www-données
Groupe=www-données
WorkingDirectory=/var/www/application/
ExecStart=/usr/bin/gunicorn --workers 3 --bind unix:/var/www/application.chaussette wsgi:app
[Installer]
WantedBy=multi-utilisateur.cible
Enfin, enregistrez le fichier unité, puis activez et rechargez le démon.
application de redémarrage sudo systemctl.un servicesudo systemctl démon-recharger
Vous pouvez maintenant accéder à l'application en utilisant l'adresse IP ou l'adresse spécifiée dans le fichier de configuration nginx. Vous devrez peut-être l'ajouter au fichier de l'hôte.
curl http://applicationHTTP/1.1 200 OK
Serveur : Werkzeug/0.16.1 Python/3.8.5)
Date : ven. 19 mars 2021 10:00:39 GMT
Type de contenu : texte/html
Contenu-Longueur : 25
Dernière modification : ven. 19 mars 2021 09:22:47 GMT
Conclusion
Ce tutoriel a expliqué comment configurer une application Python Flask et la servir sur Nginx à l'aide de Gunicorn. Examinez la documentation individuelle pour en savoir plus sur les services abordés dans ce didacticiel.