Vorbereiten eines Linux-Servers für die Ausführung einer Webanwendung in Python

11. März 2020

Lang: cs en de es

Es 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:

  1. Python-Installation
  2. Installation und Inbetriebnahme des Nginx-Webservers
  3. Einrichten der Python-Umgebung
  4. Nginx einrichten
  5. Installation von Django
  6. Einrichten von uwsgi
  7. 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 uwsgi
Wir 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 $DIR
Erstellen Sie eine isolierte Umgebung:
virtualenv --python=python2 --always-copy venv
Wechseln 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 venv
Wechseln 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:
  1. Python-Installation
  2. Nginx-Webserver
  3. Einrichten der Python-Umgebung
  4. Einrichten von Nginx
  5. Installation des Django-Frameworks
  6. Einrichten von uwsgi
  7. 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

Články na podobné téma

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.


+