Debugging & Troubleshooting

Installer Gunicorn : guide pratique pour Django et Flask

Découvrez comment installer Gunicorn et lancer une application Django ou Flask : commande pip, workers, bind et limite à connaître sous Windows.

Photo de profil de Long Nguyen

Long Nguyen

Développeur fullstack · Ingénieur IA · Chercheur

• • 3 min de lecture •

Gunicorn (Green Unicorn) est un serveur HTTP Python compatible WSGI, utilisé pour exécuter des applications web comme Django et Flask en production. Son installation tient en une commande ; l'essentiel est de savoir comment lancer votre application et de connaître une limitation de plateforme qui bloque de nombreux utilisateurs avant même leurs premiers essais.

Installer Gunicorn

Gunicorn est un paquet PyPI standard. Dans l'environnement virtuel de votre projet :

pip install gunicorn

Vérifiez que l'installation a réussi et contrôlez la version :

gunicorn --version

Ajoutez-le à votre fichier de dépendances afin de garantir des déploiements reproductibles — par exemple, avec une ligne dans requirements.txt :

gunicorn==23.0.0

Lancer une application Django

Gunicorn sert votre application via son point d'entrée WSGI. Pour un projet Django, il s'agit de l'objet appelable application défini dans le fichier wsgi.py de votre projet. Depuis le répertoire qui contient manage.py :

gunicorn myproject.wsgi:application

Remplacez myproject par le dossier qui contient vos fichiers settings.py et wsgi.py. La syntaxe est module:callable : la partie avant les deux-points correspond au chemin d'importation et celle qui suit désigne l'objet appelable WSGI qu'il contient.

Lancer une application Flask

Avec Flask, indiquez à Gunicorn le module et l'objet de l'application. Si votre application est définie ainsi : app = Flask(__name__) dans app.py :

gunicorn app:app

Le premier app désigne le fichier (app.py) et le second l'instance Flask qu'il contient.

Options courantes : bind et workers

Par défaut, Gunicorn écoute sur 127.0.0.1:8000, une adresse qui n'accepte que les connexions locales. Pour écouter sur toutes les interfaces — par exemple derrière un reverse proxy comme Nginx — définissez l'adresse de liaison ainsi que le nombre de processus workers :

gunicorn myproject.wsgi:application --bind 0.0.0.0:8000 --workers 3

Pour commencer, on utilise souvent la formule (2 × nombre_de_cœurs_CPU) + 1 pour déterminer le nombre de workers. Chaque worker synchrone traite une seule requête à la fois : augmenter leur nombre permet donc de gérer davantage de requêtes simultanées, dans la limite des ressources disponibles sur votre processeur et votre mémoire. Ajustez ensuite ce paramètre selon votre charge de travail.

Le piège de Windows

Gunicorn ne fonctionne pas nativement sous Windows. Il dépend de fonctionnalités propres à Unix, comme le module fcntl et le modèle de workers fondé sur fork. Ainsi, pip install gunicorn peut réussir, mais gunicorn échouera au lancement sous Windows natif. Si vous utilisez Windows, exécutez-le dans WSL (Windows Subsystem for Linux), dans un conteneur Linux ou sur un serveur Linux — ou utilisez plutôt un serveur WSGI compatible avec Windows, comme Waitress, pour le développement local.

À propos des applications asynchrones

Gunicorn est un serveur WSGI, ce qui convient aux applications Django et Flask standard. Si vous utilisez une application ASGI/asynchrone (FastAPI ou Django en mode ASGI), vous aurez besoin d'une configuration compatible avec ASGI — par exemple Gunicorn avec des workers Uvicorn, ou Uvicorn exécuté directement. Un Gunicorn synchrone classique ne peut pas servir une application ASGI tel quel.

Une fois installé, Gunicorn est généralement exécuté derrière un reverse proxy et géré par un superviseur de processus en production — une configuration qu'il est facile de mal régler sans s'en rendre compte. Dans le cadre de mon travail, je conçois et déploie des backends Django ; si vous avez besoin d'aide pour votre backend ou votre infrastructure, découvrez les services de Netalith ou contactez-moi sur LinkedIn.

FAQ

Questions fréquentes

Comment installer Gunicorn ?

Activez votre environnement virtuel, puis exécutez <code>pip install gunicorn</code>. Vérifiez l'installation avec <code>gunicorn --version</code> et indiquez la version dans <code>requirements.txt</code> pour garantir des déploiements reproductibles.

Comment lancer une application Django avec Gunicorn ?

Depuis le répertoire qui contient <code>manage.py</code>, exécutez <code>gunicorn myproject.wsgi:application</code> en remplaçant <code>myproject</code> par le dossier contenant <code>settings.py</code> et <code>wsgi.py</code>. La syntaxe est <code>module:callable</code>.

Puis-je utiliser Gunicorn sous Windows ?

Pas nativement. Gunicorn dépend de fonctionnalités propres à Unix, comme <code>fcntl</code> et <code>fork</code> ; il ne fonctionnera donc pas sous Windows natif, même si l'installation avec <code>pip install</code> réussit. Utilisez WSL, un conteneur ou un serveur Linux, ou un serveur compatible avec Windows comme Waitress pour le développement local.

Combien de workers Gunicorn dois-je utiliser ?

Pour commencer, utilisez souvent la formule <code>(2 × cœurs CPU) + 1</code>. Chaque worker synchrone traite une requête à la fois ; ajustez donc leur nombre en fonction de votre processeur, de votre mémoire et de votre charge de travail.

Gunicorn fonctionne-t-il avec FastAPI ou Django en mode asynchrone ?

Gunicorn est un serveur WSGI et sert donc directement les applications Django et Flask standard. Pour les applications ASGI ou asynchrones comme FastAPI ou Django en mode ASGI, utilisez Gunicorn avec des workers Uvicorn, ou exécutez Uvicorn directement.

Restez informé avec Netalith

Recevez des ressources de développement, des mises à jour produit et des offres spéciales directement dans votre boîte mail.