Passer au contenu principal
Gunicorn est un serveur HTTP WSGI pour Python qui exécute Flask, Django et d’autres applications WSGI en production. Ce guide montre comment démarrer votre application avec Gunicorn, l’ajuster à la RAM de votre plan et l’exécuter sur Square Cloud.

Installer Gunicorn

Installez Gunicorn sur votre machine :
Ajoutez aussi gunicorn à votre requirements.txt, pour que Square Cloud l’installe avec vos autres dépendances :
requirements.txt

Utilisation de base

Pour exécuter une application avec Gunicorn, vous avez besoin d’une application WSGI, par exemple créée avec Flask ou Django, et vous devez connaître le nom du module et le nom de la variable qui contient l’objet application WSGI. Par exemple, si vous avez une application Flask dans un fichier nommé app.py et que l’instance Flask est nommée app, vous pouvez l’exécuter avec Gunicorn à l’aide de la commande suivante :
Dans cette commande :
  • python -m gunicorn exécute Gunicorn en tant que module Python.
  • --bind 0.0.0.0:80 indique à Gunicorn d’écouter sur toutes les interfaces réseau sur le port 80.
  • app:app spécifie le nom du module (app) et le nom de la variable (app) qui contient l’objet application WSGI.
Pour Django, pointez Gunicorn vers le module wsgi.py que Django crée dans le package de votre projet (remplacez myproject par le nom de votre projet) :

Options supplémentaires

Gunicorn fournit plusieurs options pour personnaliser son comportement. Voici les plus courantes ; la référence officielle des paramètres de Gunicorn les liste toutes.

Workers

  • --workers <number>
Cette option définit le nombre de processus worker chargés de traiter les requêtes. Chaque worker est un processus distinct avec sa propre copie de votre application en mémoire : sur Square Cloud, la limite est donc généralement la RAM, pas le CPU. Commencez avec 2 workers et n’en ajoutez qu’après avoir augmenté MEMORY. Si votre application s’arrête avec LACK_OF_RAM, réduisez le nombre de workers.
Ne dimensionnez pas les workers avec multiprocessing.cpu_count() ni avec la formule (2 x $num_cores) + 1 : dans un conteneur, le nombre de cœurs peut être celui de la machine hôte, ce qui démarre des dizaines de workers et épuise votre RAM.

Name

  • --name <name>
  • -n <name>
Cette option définit le nom du processus pour Gunicorn.

Worker class

  • --worker-class <class>
  • -k <class>
Cette option définit le type de worker à utiliser. La valeur par défaut est sync, mais vous pouvez également utiliser gevent, eventlet, tornado ou un autre type de worker.

Fichier de configuration

Vous pouvez également définir les options de Gunicorn dans un fichier de configuration Python. Gunicorn charge automatiquement un fichier nommé gunicorn.conf.py depuis le répertoire où il s’exécute, qui est la racine de votre projet sur Square Cloud. Pour tout autre nom de fichier, passez-le avec -c <file>.
gunicorn.conf.py
Avec ce fichier dans votre projet, la commande de démarrage n’a plus besoin de l’option --bind.

Exécuter sur Square Cloud

Créez un fichier squarecloud.app à la racine de votre projet et placez la commande Gunicorn dans son champ START, pour que Square Cloud démarre votre application avec Gunicorn au lieu du python app.py par défaut :
Gunicorn doit écouter sur 0.0.0.0:80 : Square Cloud achemine le trafic de votre sous-domaine vers le port 80 de votre application. Square Cloud définit aussi la variable d’environnement PORT à 80, et Gunicorn la lit : sans option --bind, il écoute sur 0.0.0.0:$PORT lorsque PORT est définie.
Pour Django, utilisez myproject.wsgi:application dans START et le manage.py de votre projet comme MAIN. Les tutoriels Flask et Django couvrent le déploiement complet.

Prochaines étapes

Flask

Déployez une application Flask derrière Gunicorn.

Django

Déployez un projet Django derrière Gunicorn.

L'application ne démarre pas

Corrigez EADDRINUSE, LACK_OF_RAM et les autres échecs au démarrage.

Avez-vous aimé cet article ?

  • Nous avons créé ce contenu avec le plus grand soin afin d’offrir la meilleure aide possible. Si cet article vous a aidé d’une quelconque manière, soutenez notre travail ! Les développeurs ont déjà noté Square Cloud 4,9/5 sur 402 avis sur Google et Trustpilot, laissez le vôtre aussi ! Cela nous aide à comprendre ce qui compte le plus pour vous.

Google Reviews

Laissez votre avis sur Google Reviews.

Trustpilot

Laissez votre avis sur Trustpilot.