Comment déployer une application Flask avec Nginx et CGI sur Ubuntu 20.04

OIG%20%282%29 Dans ce tutoriel, vous allez apprendre à déployer une application web développée avec le framework Python Flask sur un serveur Ubuntu 20.04. Vous allez utiliser Nginx comme serveur web et CGI comme interface pour exécuter votre application Flask. Vous allez également configurer un nom de domaine pour accéder à votre site web.

Prérequis

Avant de commencer, vous devez avoir :

  • Un serveur Ubuntu 20.04 avec un utilisateur non root ayant des privilèges sudo. Un nom de domaine configuré pour pointer vers l’adresse IP de votre serveur.
  • Une application Flask développée dans un environnement virtuel Python sur votre serveur.

Étape 1 : Installer le module CGI pour Nginx

Le module CGI (Common Gateway Interface) permet à Nginx de communiquer avec des programmes externes qui génèrent du contenu web dynamique. Pour installer le module CGI pour Nginx, ouvrez un terminal et exécutez la commande suivante :

sudo apt install fcgiwrap

Étape 2 : Configurer Nginx pour servir l’application Flask

Dans cette étape, vous allez créer un fichier de configuration Nginx pour votre application Flask dans le répertoire /etc/nginx/sites-available/. Par exemple, si votre nom de domaine est example.com, créez le fichier /etc/nginx/sites-available/example.com avec le contenu suivant :

server {
    listen 80;
    server_name example.com www.example.com;

    location / {
        include fastcgi_params;
        fastcgi_pass unix:/var/run/fcgiwrap.socket;
        fastcgi_param SCRIPT_FILENAME /home/username/myproject/app.py;
    }
}

Remplacez example.com par votre nom de domaine, et /home/username/myproject/app.py par le chemin vers votre fichier principal de l’application Flask.

Ensuite, activez le fichier de configuration en créant un lien symbolique vers le répertoire /etc/nginx/sites-enabled/ :

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

Vérifiez la syntaxe de la configuration Nginx avec la commande suivante :

sudo nginx -t

Si tout est correct, redémarrez Nginx pour appliquer les changements :

sudo systemctl restart nginx

Étape 3 : Tester l’application Flask

Ouvrez votre navigateur web et accédez à votre nom de domaine. Vous devriez voir votre application Flask s’afficher.

Félicitations, vous avez réussi à déployer une application Flask avec Nginx et CGI !

Conclusion

Dans ce tutoriel, vous avez appris à déployer une application web développée avec le framework Python Flask sur un serveur Ubuntu 20.04. Vous avez utilisé Nginx comme serveur web et CGI comme interface pour exécuter votre application Flask. Vous avez également configuré un nom de domaine pour accéder à votre site web.

1: https://docs.nginx.com/nginx/admin-guide/installing-nginx/installing-nginx-open-source/