Nginx

So verwenden Sie Nginx mit Flask.

So verwenden Sie Nginx mit Flask.
Python ist eine großartige, einfach zu erlernende und allmächtige Programmiersprache, und mit Frameworks wie Django und Flask können wir damit vollwertige Webanwendungen erstellen. Sobald wir eine Webanwendung mit Bibliotheken und Frameworks wie Flask erstellt haben, müssen wir sie auf einem Server hosten und der Öffentlichkeit zugänglich machen. In diesem Tutorial wird beschrieben, wie Sie Ihre Webanwendung auf einem Server mit Nginx mit Gunicorn hosten. Bevor wir mit Flask und Gunicorn beginnen, stellen Sie sicher, dass Sie die folgenden Anforderungen erfüllen:

Einrichten des Servers

Beginnen wir nun mit der Einstellung der Serverumgebung, die wir zum Hosten unseres Servers verwenden 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 install python3 python3-pip -y

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

sudo mkdir /var/www/application
cd /var/www/applikation

Verzeichnisbesitz und Berechtigungen ändern:

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

Als nächstes installieren Sie die Pakete mit apt (flask und Gunicorn)

sudo apt-get install python3-flask python3-gunicorn

Lassen Sie uns nun mit der Initialisierung einer Kolbenanwendung fortfahren. Beginnen Sie mit der Erstellung der Hauptdatei.py-hält die Anwendung-und wsgi.py, wodurch die Anwendung ausgeführt wird.

sudo touch main.py wsgi.py

Bearbeiten Sie die Hauptdatei.py-Datei und richten Sie Ihre Flask-Anwendung und alle Routen ein. Da dieses Tutorial kein Flask-Guide ist, werden wir eine grundlegende Route und eine Hallo-Welt-Nachricht einrichten.

aus Flaschenimport Flasche
app = Flasche(__name__)
@app.Route("/")
def home():
Rückkehr "

Nginx & Gunicorn

"

Bearbeiten Sie die wsgi.py-Datei, fügen Sie den Code zum Importieren der App hinzu und führen Sie ihn aus als:

aus der Hauptimport-App
if __name__ == "__main__":
App.ausführen(debug=wahr)

Testen Sie abschließend, ob es betriebsbereit ist, indem Sie Flask als aufrufen:

$ Kolbenlauf
* Umgebung: Produktion
WARNUNG: Dies ist ein Entwicklungsserver. Verwenden Sie es nicht in einer Produktionsbereitstellung.
Verwenden Sie stattdessen einen Produktions-WSGI-Server.
* Debug-Modus: aus
* Läuft auf http://127.0.0.1:5000/ (Drücken Sie STRG+C zum Beenden)

Versuchen Sie, unter http://localhost:5000 auf die Anwendung zuzugreifen.

Gunicorn einrichten

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

$ sudo gunicorn --workers 5 wsgi:app
[2021-03-19 09:19:34 +0000] [14047] [INFO] Startschuss für Gunicorn 20.0.4
[2021-03-19 09:19:34 +0000] [14047] [INFO] Hören unter: http://127.0.0.1:8000 (14047)
[2021-03-19 09:19:34 +0000] [14047] [INFO] Arbeiter verwenden: sync
[2021-03-19 09:19:34 +0000] [14049] [INFO] Booten des Workers mit pid: 14049
[2021-03-19 09:19:34 +0000] [14050] [INFO] Booten des Workers mit pid: 14050
[2021-03-19 09:19:34 +0000] [14051] [INFO] Booten des Workers mit pid: 14051
[2021-03-19 09:19:34 +0000] [14052] [INFO] Booten des Workers mit pid: 14052
[2021-03-19 09:19:35 +0000] [14053] [INFO] Booten des Workers mit pid: 14053

Die obigen Befehle führen die Flaschenanwendung mit Gunicorn mit der angegebenen Anzahl von Arbeitern aus. Wir rufen dann die Datei wsgi:app auf, die die Datei und Instanz der auszuführenden Anwendung ist.

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

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

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

Der nächste Schritt besteht darin, die Nginx-Konfiguration im Sites-enabled-Verzeichnis 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-available/application.conf
Server
hören 80;
server_name-Anwendung;
access_log /var/log/nginx/application.Zugriff.Log;
error_log /var/log/nginx/appliation.Error.Log;
Lage /
schließe proxy_params ein;
proxy_pass http://unix:/var/www/application/application.Socke;

Fahren Sie mit dem Erstellen eines Links zum Site-aktivierten Verzeichnis fort, um die Website zu aktivieren.

sudo ln -s /etc/nginx/sites-available/application.conf /etc/nginx/sites-enabled/

Starten Sie nun den Nginx-Dienst neu als:

sudo systemctl Neustart nginx

Als Nächstes müssen wir eine systemd-Unit-Datei erstellen, um die Anwendung bereitzustellen.

sudo nano /etc/systemd/system/applikation.Bedienung
[Einheit]
Beschreibung=Anwendung.service - Eine Flask-Anwendung, die mit Gunicorn ausgeführt wird.
Nach=Netzwerk.Ziel
[Bedienung]
Benutzer=www-daten
Gruppe=www-daten
WorkingDirectory=/var/www/application/
ExecStart=/usr/bin/gunicorn --workers 3 --bind unix:/var/www/application.Socke wsgi:app
[Installieren]
WantedBy=Mehrbenutzer.Ziel

Speichern Sie abschließend die Unit-Datei, aktivieren Sie den Daemon und laden Sie ihn erneut.

sudo systemctl Anwendung neu starten.Bedienung
sudo systemctl daemon-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 der Datei des Hosts hinzufügen.

curl http://Anwendung
HTTP/1.1 200 OK
Server: Werkzeug/0.16.1 Python/3.8.5)
Datum: Fr, 19. März 2021 10:00:39 GMT
Inhaltstyp: text/html
Inhaltslänge: 25
Zuletzt geändert: Fr, 19. März 2021 09:22:47 GMT

Fazit

In diesem Tutorial wurde beschrieben, wie Sie eine Python Flask-Anwendung einrichten und mit Gunicorn über Nginx bereitstellen. Betrachten Sie die individuelle Dokumentation, um mehr über die in diesem Tutorial besprochenen Dienste zu erfahren.

So zeigen Sie OSD-Overlay in Vollbild-Linux-Apps und -Spielen an
Das Spielen von Spielen im Vollbildmodus oder die Verwendung von Apps im ablenkungsfreien Vollbildmodus kann Sie von relevanten Systeminformationen ab...
Top 5 Karten zur Spielaufnahme
Wir alle haben Streaming-Gameplays auf YouTube gesehen und geliebt. PewDiePie, Jakesepticye und Markiplier sind nur einige der Top-Gamer, die Millione...
So entwickeln Sie ein Spiel unter Linux
Vor einem Jahrzehnt hätten nicht viele Linux-Benutzer vorhergesagt, dass ihr Lieblingsbetriebssystem eines Tages eine beliebte Spieleplattform für kom...