Vorbereiten eines Linux-Servers für die Ausführung einer Webanwendung in Python
11. März 2020Es gibt viele Technologien, die für die Entwicklung von Webanwendungen verwendet werden können. Eine davon ist die Sprache Python und das Django-Framework. In diesem Artikel beschreibe ich, wie man einen Linux-Server (VPS) für die Ausführung einer in Python programmierten Webanwendung vorbereitet.
In diesem Artikel werde ich die Installation eines Linux-Servers mit der Debian 9-Distribution, auf dem ich eine in Python geschriebene Webanwendung laufen lassen werde. Zuerst muss ich jedoch den Webserver und die Python-Umgebung zum Laufen bringen und den Webserver mit der Python-Anwendung verbinden. Das Ergebnis wird ein physischer Server sein oder VPS zur Ausführung der Python/Django-Anwendung. Natürlich wird die Anwendung auch mit einer SQL-Datenbank verbunden, aber das ist nicht das Thema dieses Artikels - Diese Informationen finden Sie im Artikel PostgreSQL und MySQL/MariaDB Datenbanken.
Hintergrund
Der Ablauf der Installation und Konfiguration ist wie folgt:
- Python-Installation
- Installation und Inbetriebnahme des Nginx-Webservers
- Einrichten der Python-Umgebung
- Nginx einrichten
- Installation von Django
- Einrichten von uwsgi
- Verbinden von Python-Anwendung und Webserver
Python
Als erstes muss man sich entscheiden, ob man Python Version 3 oder Python Version 2 benötigt.
Installation von Python Version 3:
apt-get install python3
Python Version 2 installieren:
apt-get install python2
WSGI HTTP
WSGI ist ein Kern von Web Server Gateway Interface. Es ist eine Konvention zum Aufruf von Webservern und zur Weiterleitung von Anfragen an Webanwendungen. Es wird von dem in der Programmiersprache Python geschriebenen Django Framework unterstützt. Mit diesem Framework zeige ich Ihnen, wie Sie einen Python-Webserver zum Laufen bringen. Details Was ist WSGI.
Neben dem Django-Framework gibt es weitere in Python geschriebene Frameworks wie z.B. Flask.
Als Implementierung von WSGI können wir Gunicorn oder UWSGI verwenden. Ich verwende irgendwo UWSGI und irgendwo Gunicorn.
Installieren von uwsgi:
apt-get install uwsgiWir brauchen uwsgi nicht einmal auf dem System zu installieren, da wir die Version, die wir mit den Bibliotheken installieren, für die Anwendung verwenden können.
Wie ich bereits erwähnt habe, werden wir Nginx als Webserver verwenden. Wenn Sie also bereits einen Apache-Webserver installiert haben, ist es eine gute Idee, das System mit diesem Befehl zu säubern:
apt-get purge apache2
Um den Webserver Nginx zu installieren, verwenden Sie den Befehl:
apt-get install nginx
Installieren Sie virtualenv, ein Werkzeug zum Erstellen einer isolierten Umgebung für die Ausführung von Python-Anwendungen. Zur Installation verwenden Sie den Befehl:
apt-get virtualenv
Python Webserver allgemeines Tutorium
Lassen Sie uns eine Umgebung für Webanwendungen in Python Version 2 erstellen. Für Python Version 3 ist es fast das Gleiche.
Erstellen Sie ein Verzeichnis, in dem wir die Umgebungs- und Projektdaten aufbewahren werden:
DIR=/var/www/test2/mysite mkdir $DIR cd $DIRErstellen Sie eine isolierte Umgebung:
virtualenv --python=python2 --always-copy venvWechseln Sie zu einer isolierten Umgebung:
source venv/bin/activate
Wir werden alle Bibliotheken für die isolierte Umgebung mit der pip-Technologie installieren.
Wir müssen UWSGI nicht auf dem System haben, aber wir können es direkt in diesen isolierten Befehl installieren:
pip install uwsgi
Virtuelle Umgebung Python 3
Erstellen einer isolierten Umgebung:
virtualenv --python=python3 --always-copy venvWechseln Sie in die Umgebung:
source venv/bin/activate
Einrichten eines Nginx-Webservers
Erstellen Sie eine /etc/nginx/sites-available/mysite_nginx.conf Datei mit dem folgenden Inhalt:
# die Upstream-Komponente, mit der sich Nginx verbinden muss upstream django { # server unix:///path/to/your/mysite/mysite.sock; # für einen Dateisocket server 127.0.0.1:8001; # für einen Webport-Socket (den werden wir zuerst verwenden) } # Konfiguration des Servers server { # der Port, über den Ihre Website bedient werden soll listen 8000; # der Domain-Name, für den der Server arbeiten soll server_name example.com; # ersetzen Sie die IP-Adresse oder den FQDN Ihres Rechners charset utf-8; # maximale Upload-Größe client_max_body_size 75M; # nach Geschmack anpassen # Django media Standort /media { alias /path/to/your/mysite/media; # die Mediendateien Ihres Django-Projekts - ändern Sie sie nach Bedarf } Standort /static { alias /pfad/zu/ihrer/mysite/static; # die statischen Dateien Ihres Django-Projekts - ändern Sie diese nach Bedarf } # Schließlich senden Sie alle nicht-medialen Anfragen an den Django-Server. Standort / { uwsgi_pass django; include /path/to/your/mysite/uwsgi_params; # die von Ihnen installierte uwsgi_params-Datei } }Es ist sinnvoll, den Webserver über Socket mit der Anwendung zu verbinden. Außerdem müssen Sie uwsgi so einstellen, dass er automatisch startet, wenn der Server hochfährt. Auf alten Systemen sind dies Init-Skripte, aber auf heutigen Systemen (2019) werden Sie auf jeden Fall systemd startup verwenden. Hier ist, wie man das einrichtet uwsgi startet mit sysmted. Und vergessen Sie nicht, den Befehl auto-start service zu aktivieren:
systemctl enable webapp.service
Das Ergebnis ist ein Server mit einer Umgebung für Webanwendungen, die mit dem Django-Framework geschrieben wurden.
Vergessen Sie nicht, auch die Web-Sicherheit mit Zertifikat und HTTPS-verschlüsselter Verbindung einzurichten.
Wer braucht Kundenindividuelle Linux Server Installation und Konfiguration mit Python kann sich gerne bei mir melden.
Video-Demonstration der Einrichtung eines Python-Webservers
Videodemonstration mit Installation und Einrichtung eines Linux-Servers zum Betrieb einer Python-Anwendung mit Django-Framework. Der verwendete Webserver ist nginx und uwsgi.
- Videobeschreibung:
- Python-Installation
- Nginx-Webserver
- Einrichten der Python-Umgebung
- Einrichten von Nginx
- Installation des Django-Frameworks
- Einrichten von uwsgi
- Verbinden der Python-Anwendung und des Webservers
Links
Python als Webanwendung betreiben:
Django und Nginx
nginx + Django + python 3
Liste der UWSGI-Parameter:
uwsgi_params
Artikel zu einem ähnlichen Thema
VMware vs. Proxmox: Leistungsvergleich
GitLab CI/CD: Testautomatisierung und Anwendungsbereitstellung
VPS von VMware zu Proxmox migrieren
VMware-Lizenzierungsänderung
Ausführen von Microsoft SQL Server unter Linux
Sicherung: der Proxmox Backup Server
Linux als Router und Firewall
Hochladen eines Docker-Images in die Docker-Registry
Linux: Verwaltung logischer Datenträger
Linux-Software-RAID
Ausführen einer Webanwendung hinter einem Proxy
Migration von Postfächern
Mehrstufige Docker-Erstellung
Sichern Ihrer Daten durch Einschalten des Computers
Podman
Importieren von Windows in die Proxmox-Virtualisierung
Docker und PHP-Mail
Proxmox-Virtualisierung
Docker und Cron
Lenovo ThinkPad X1 Carbon: Inbetriebnahme des LTE-Modems EM7544
Yocto-Projekt: Erstellen eines eigenen Betriebssystems für eingebettete Geräte
Wie man eine schlechte Dateifreigabeleistung in Docker behebt
Wie man Docker richtig einsetzt
Installation von Linux auf einem dedizierten HPE ProLiant DL320e Server
Wie man eine Webanwendung einem Belastungstest unterzieht
Warum das JFS-Dateisystem verwenden
Booten von einer 4TB-Festplatte mit GTP unter UEFI
Btrfs-Dateisystem
Raspberry PI
WINE - Ausführen von Windous Programmen unter Linux
GNU/Linux-Betriebssystem
Newsletter
Wenn Sie daran interessiert sind, gelegentlich Neuigkeiten per E-Mail zu erhalten.
Sie können sich registrieren, indem Sie Ihre E-Mail-Adresse eingeben
News-Abonnement.
+