So verwenden Sie Nginx mit Flask.

So verwenden Sie Nginx mit Flask.
Python ist eine großartige, leicht zu larnende und allmächtige Programmiersprache. Mit Frameworks wie Django und Flask können wir sie verwenden, um vollwertige Webanwendungen zu erstellen. Sobald wir eine Webanwendung mit Bibliotheken und Frameworks wie Flask erstellt haben, müssen wir sie auf einem Server hosten und der Öffentlichkeit aussetzen. In diesem Tutorial wird erläutert. Bevor wir mit Flask und Gunicorn beginnen, stellen Sie sicher, dass Sie die folgenden Anforderungen erfüllen:
  • Ein Server mit SSH -Zugriff
  • NGINX -Webserver, der auf dem Server ausgeführt wird (Installation abgedeckt)
  • Python
  • Sie sind ein Sudo -Benutzer.

Einrichten des Servers

Lassen Sie uns nun die Serverumgebung festlegen, mit der wir unseren Server hosten werden. Dieses Tutorial verwendet den Ubuntu -Server. Beginnen Sie mit der Aktualisierung der Repositorys und der Installation von Python3 und PIP.

sudo apt-Get-Update
sudo apt -Get Upgrade -y
sudo apt-get installieren python3 python3-pip -y

Als nächstes müssen wir ein Verzeichnis erstellen, um das Projekt zu speichern.

sudo mkdir/var/www/Anwendung
CD/var/www/Anwendung

Verzeichnis Eigentum und Berechtigungen ändern:

sudo chown -r www-data: www-data/var/www/application/

Installieren Sie die Pakete als Nächstes mit APT (Kolben und Gunicorn)

sudo apt-Get Installieren Sie Python3-Flask Python3-Gunicorn

Lassen Sie uns nun eine Flask -Anwendung initialisieren. Beginnen Sie mit der Erstellung des Haupts.py hält die Anwendung und WSGI.PY, mit dem die Anwendung ausgeführt wird.

Sudo Touch Main.PY WSGI.py

Bearbeiten Sie die Haupt.PY -Datei und richten Sie Ihre Flask -Anwendung und alle Routen ein. Da dieses Tutorial kein Flask -Leitfaden ist, werden wir eine grundlegende Route und eine Hello World -Nachricht einrichten.

aus Flask -Importkolben
app = Flask (__ Name__)
@app.Route("/")
Def Home ():
zurückkehren "

Nginx & Gunicorn

"

Bearbeiten Sie die WSGI.PY -Datei und fügen Sie den Code hinzu, um App zu importieren, und führen Sie als:

aus der Hauptimport -App
Wenn __name__ == "__main__":
App.run (debug = true)

Testen Sie schließlich, ob es in Betrieb ist, indem Sie Flaschen als:

$ Flask Run
* Umgebung: Produktion
Warnung: Dies ist ein Entwicklungsserver. Verwenden Sie es nicht in einer Produktionsbereitstellung.
Verwenden Sie stattdessen einen Produktions -WSGI -Server.
* Debug -Modus: Aus
* Laufen auf http: // 127.0.0.1: 5000/ (drücken Sie Strg+C, um aufzuhören)

Versuchen Sie, auf die Anwendung auf http: // localhost: 5000 zugreifen zu können.

Gunicorn einrichten

Sobald unsere Anwendung erfolgreich ausgeführt wird, können wir mit Gunicorn die Anwendung mit den Befehlen testen:

$ sudo Gunicorn -Arbeiter 5 WSGI: App
[2021-03-19 09:19:34 +0000] [14047] [INFO] Gunicorn 20 Starten.0.4
[2021-03-19 09:19:34 +0000] [14047] [Info] Hören Sie: http: // 127.0.0.1: 8000 (14047)
[2021-03-19 09:19:34 +0000] [14047] [Info] Mit Worker: Sync
[2021-03-19 09:19:34 +0000] [14049] [Info] Booting Worker mit PID: 14049
[2021-03-19 09:19:34 +0000] [14050] [Info] Booting Worker mit PID: 14050
[2021-03-19 09:19:34 +0000] [14051] [Info] Booting Worker mit PID: 14051
[2021-03-19 09:19:34 +0000] [14052] [Info] Booting Worker mit PID: 14052
[2021-03-19 09:19:35 +0000] [14053] [Info] Booting Worker mit PID: 14053

In den obigen Befehlen wird die Flask -Anwendung mit Gunicorn mit der angegebenen Anzahl von Arbeitern ausgeführt. Wir rufen dann die Datei WSGI: App auf, die die Datei und Instanz der zu ausgeführten Anwendung ist.

Sobald Sie die Anwendung mit Gunicorn ausgeführt haben, drücken Sie Strg + C, um den Server zu stoppen und Nginx einzustellen.

Verwenden Sie die folgenden Befehle, um Nginx zu installieren und auszuführen.

sudo apt -get install nginx -y
sudo systemctl starten nginx
sudo systemctl aktivieren nginx

Der nächste Schritt besteht darin, die Nginx-Konfiguration im verzeichneten Standorten zu bearbeiten und den Serverblock hinzuzufügen. Betrachten Sie die folgende Konfiguration. Ändern Sie die Anwendung in den Namen Ihres Projekts.

sudo nano/etc/nginx/sites-verfügbare/Anwendung.Conf
Server
Hören Sie 80;
Server_Name -Anwendung;
access_log/var/log/nginx/Anwendung.Zugang.Protokoll;
Fehler_log/var/log/nginx/Appliation.Fehler.Protokoll;
Standort /
proxy_params einschließen;
proxy_pass http: // unix:/var/www/application/application.Socke;

Erstellen Sie einen Link zum Site-fähigen Verzeichnis, um die Website zu aktivieren.

sudo ln -s/etc/nginx/seites -verfügbare/Anwendung.conf/etc/nginx/sites-fähig/

Starten Sie nun den Nginx -Dienst als:

sudo systemctl starten nginx neu

Als nächstes müssen wir eine Systemd -Einheitsdatei erstellen, um die Anwendung zu bedienen.

sudo nano/etc/systemd/System/Anwendung.Service
[Einheit]
Beschreibung = Anwendung.Service - Eine Flask -Anwendung mit Gunicorn.
Nach = Netzwerk.Ziel
[Service]
User = www-data
Gruppe = www-data
WorkingDirectory =/var/www/application/
Execstart =/usr/bin/gunicorn -Workers 3 -Bind Unix:/var/www/application.Socken WSGI: App
[Installieren]
Wantby by = multi-user.Ziel

Speichern Sie schließlich die Einheitsdatei, dann aktivieren und laden Sie den Daemon neu und laden Sie sie neu laden.

sudo systemctl neu starten.Service
sudo systemctl dämon-reload

Jetzt können Sie über die IP -Adresse oder die in der Nginx -Konfigurationsdatei angegebene Adresse auf die Anwendung zugreifen. Möglicherweise müssen Sie es zur Datei des Hosts hinzufügen.

curl http: // Anwendung
Http/1.1 200 ok
Server: Werkzug/0.16.1 Python/3.8.5)
Datum: Fr, 19. März 2021 10:00:39 GMT
Inhaltstyp: Text/HTML
Inhaltslänge: 25
Last-Modified: Fr, 19. März 2021 09:22:47 GMT

Abschluss

In diesem Tutorial wurde die Einrichtung einer Python -Flask -Anwendung über Nginx mit Gunicorn eingerichtet. Betrachten Sie die individuelle Dokumentation, um mehr über die in diesem Tutorial erörterten Dienste zu erfahren.