Zum Hauptinhalt springen
Gunicorn ist ein Python-WSGI-HTTP-Server, der Flask, Django und andere WSGI-Anwendungen in Produktion ausführt. Diese Anleitung zeigt, wie du deine Anwendung mit Gunicorn startest, sie an den RAM deines Plans anpasst und auf Square Cloud ausführst.

Gunicorn installieren

Installiere Gunicorn auf deinem Rechner:
Füge gunicorn auch zu deiner requirements.txt hinzu, damit Square Cloud es zusammen mit deinen anderen Abhängigkeiten installiert:
requirements.txt

Grundlegende Verwendung

Um eine Anwendung mit Gunicorn auszuführen, brauchst du eine WSGI-Anwendung, zum Beispiel eine mit Flask oder Django erstellte, und du musst den Modulnamen und den Variablennamen kennen, der das WSGI-Anwendungsobjekt enthält. Wenn du zum Beispiel eine Flask-Anwendung in einer Datei namens app.py hast und die Flask-Instanz app heißt, kannst du sie mit Gunicorn über den folgenden Befehl ausführen:
In diesem Befehl:
  • python -m gunicorn führt Gunicorn als Python-Modul aus.
  • --bind 0.0.0.0:80 weist Gunicorn an, auf allen Netzwerkschnittstellen auf Port 80 zu lauschen.
  • app:app gibt den Modulnamen (app) und den Variablennamen (app) an, der das WSGI-Anwendungsobjekt enthält.
Bei Django verweist du Gunicorn auf das Modul wsgi.py, das Django in deinem Projektpaket anlegt (ersetze myproject durch den Namen deines Projekts):

Zusätzliche Optionen

Gunicorn bietet mehrere Optionen, um sein Verhalten anzupassen. Hier findest du die gängigsten; die offizielle Referenz der Gunicorn-Einstellungen führt alle auf.

Workers

  • --workers <number>
Diese Option legt die Anzahl der Worker-Prozesse zur Verarbeitung von Anfragen fest. Jeder Worker ist ein eigener Prozess mit einer eigenen Kopie deiner Anwendung im Speicher, daher ist auf Square Cloud meist der RAM die Grenze, nicht die CPU. Beginne mit 2 Workern und füge weitere erst hinzu, nachdem du MEMORY erhöht hast. Wenn deine Anwendung mit LACK_OF_RAM stoppt, verringere die Anzahl der Worker.
Bemiss die Worker nicht mit multiprocessing.cpu_count() oder der Formel (2 x $num_cores) + 1: Innerhalb eines Containers kann die Kernanzahl die der Host-Maschine sein, wodurch Dutzende Worker starten und deinen RAM aufbrauchen.

Name

  • --name <name>
  • -n <name>
Diese Option legt den Prozessnamen für Gunicorn fest.

Worker-Klasse

  • --worker-class <class>
  • -k <class>
Diese Option legt den zu verwendenden Worker-Typ fest. Der Standard ist sync, aber du kannst auch gevent, eventlet, tornado oder einen anderen Worker-Typ verwenden.

Konfigurationsdatei

Du kannst Gunicorn-Optionen auch in einer Python-Konfigurationsdatei festlegen. Gunicorn lädt automatisch eine Datei namens gunicorn.conf.py aus dem Verzeichnis, in dem es läuft, auf Square Cloud also aus dem Stammverzeichnis deines Projekts. Jeden anderen Dateinamen übergibst du mit -c <file>.
gunicorn.conf.py
Mit dieser Datei in deinem Projekt braucht der Startbefehl die Option --bind nicht mehr.

Auf Square Cloud ausführen

Erstelle im Stammverzeichnis deines Projekts eine Datei squarecloud.app und trage den Gunicorn-Befehl in ihr Feld START ein, damit Square Cloud deine Anwendung mit Gunicorn startet statt mit dem standardmäßigen python app.py:
Gunicorn muss an 0.0.0.0:80 binden: Square Cloud leitet den Traffic deiner Subdomain an Port 80 deiner Anwendung weiter. Square Cloud setzt außerdem die Umgebungsvariable PORT auf 80, und Gunicorn liest sie: Ohne die Option --bind lauscht es auf 0.0.0.0:$PORT, sobald PORT gesetzt ist.
Bei Django verwendest du myproject.wsgi:application in START und die manage.py deines Projekts als MAIN. Die Tutorials zu Flask und Django behandeln das vollständige Deploy.

Nächste Schritte

Flask

Deploye eine Flask-Anwendung hinter Gunicorn.

Django

Deploye ein Django-Projekt hinter Gunicorn.

App startet nicht

Behebe EADDRINUSE, LACK_OF_RAM und andere Fehler beim Start.

Hat dir dieser Artikel gefallen?

  • Wir haben diesen Inhalt mit großer Sorgfalt erstellt, um dir die bestmögliche Hilfe zu bieten. Wenn dir dieser Artikel in irgendeiner Weise geholfen hat, unterstütze unsere Arbeit! Entwickler haben Square Cloud bereits mit 4,9/5 bei 402 Bewertungen auf Google und Trustpilot bewertet: hinterlasse auch deine! Sie hilft uns zu verstehen, was dir am wichtigsten ist.

Google Reviews

Hinterlasse deine Bewertung bei Google Reviews.

Trustpilot

Hinterlasse deine Bewertung bei Trustpilot.