Skip to main content

Introduction

  • Cet article vous guide tout au long du processus d’utilisation de Gunicorn, un serveur HTTP WSGI pour Python, pour exécuter Flask, Django et d’autres applications WSGI en production.
  • Avant de commencer, assurez-vous d’avoir Python et Gunicorn installés dans votre environnement. Vous pouvez installer Gunicorn à l’aide de la commande suivante :
  • 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 web Python avec Gunicorn, vous devez disposer d’une application WSGI comme flask, django ou un autre framework.
Une fois votre application prête, 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) :

Exécution sur Square Cloud

Placez la commande dans le champ START de votre fichier de configuration, pour que Square Cloud démarre votre application avec Gunicorn :
squarecloud.app
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.

Options supplémentaires

Gunicorn fournit plusieurs options pour personnaliser son comportement. Nous en présentons ici quelques-unes.

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.

Extras

Gunicorn possède de nombreuses autres options et fonctionnalités que vous pouvez explorer dans la documentation officielle.

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, le champ START peut se limiter à :
squarecloud.app

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.