Django ist ein kostenloses Open-Source-Webframework auf hoher Ebene, das zur Entwicklung von Python-Webanwendungen verwendet wird. Django wird mit einer Reihe von Tools geliefert, mit denen Sie sichere und skalierbare Webanwendungen erstellen können. Sein Hauptzweck besteht darin, die Erstellung komplexer Anwendungen zu erleichtern und die interne Struktur aufrechtzuerhalten.
In diesem Tutorial lernen wir, wie man Django installiert und Nginx als Reverse-Proxy für Django unter Rocky Linux 8 und CentOS 8 konfiguriert.
Voraussetzung
- Server mit Betriebssystem CentOS 8.
- Melden Sie sich als Root oder Benutzer mit Privilegien an sudo
Erforderliche Pakete installieren
Django ist ein Python-basiertes Framework, daher müssen Sie Python und PIP auf Ihrem System installieren. Um es installieren zu können, führen Sie den folgenden Befehl aus:
dnf install python36 python3-pip -y
Sobald beide Pakete installiert sind, fahren Sie mit dem nächsten Schritt fort.
Installieren Sie Django auf Rocky Linux 8
Sie können Django mit dem PIP-Befehl wie unten gezeigt installieren:
pip3 install Django
Überprüfen Sie nach der Installation von Django die Django-Version mit dem folgenden Befehl:
django-admin --version
Sie sehen die Django-Version in der folgenden Ausgabe:
3.0.3
Zum Zeitpunkt der Erstellung dieses Artikels war die Version von Django Version 3.0.3
Erstellen Sie ein Django-Projekt
Zu diesem Zeitpunkt wurde Django erfolgreich installiert. Jetzt ist es an der Zeit, eine Django-App zu erstellen.
Sie können Django-Anwendungen mit dem Befehl django-admin im Verzeichnis /opt
erstellen wie unten gezeigt:
cd /opt
django-admin startproject djangoproject
Sobald das Django-Projekt erstellt ist, ändern Sie das Verzeichnis in djangoproject
und migrieren Sie Änderungen mit dem folgenden Befehl:
cd djangoproject
python3 manage.py migrate
Sie erhalten die folgende Ausgabe:
Durchzuführende Vorgänge:Alle Migrationen anwenden:admin, auth, contenttypes, sessionsRunning migrations:Applying contenttypes.0001_initial... OK Applying auth.0001_initial... OK Applying admin.0001_initial... OK Applying admin.0002_logentry_remove_auto_add.. OK admin.0003_logentry_add_action_flag_choices wird angewendet... OK contenttypes.0002_remove_content_type_name wird angewendet... OK auth.0002_alter_permission_name_max_length wird angewendet... OK auth.0003_alter_user_email_max_length wird angewendet... OK auth.0004_alter_user_username_opts wird angewendet... OK auth.0004_alter_user_username_opts wird angewendet... OK auth.00 wird angewendet auth.0006_require_contenttypes_0002 wird angewendet... OK auth.0007_alter_validators_add_error_messages wird angewendet... OK auth.0008_alter_user_username_max_length wird angewendet... OK auth.0009_alter_user_last_name_max_length wird angewendet... OK auth.0009_alter_user_last_name_max_length wird angewendet... OK auth.0010_alter_group_name_oxy_prmission_length wird angewendet... OK1permission_update wird angewendet... OK1 auth.00 wird angewendet .0001_initial... OK
Als Nächstes müssen Sie ein Admin-Benutzerkonto erstellen, um Ihr Django-Projekt mit dem folgenden Befehl zu verwalten:
python3 manage.py createsuperuser
Sie werden aufgefordert, Ihren Benutzernamen, Ihre E-Mail-Adresse und Ihr Passwort anzugeben. Sie können es wie unten gezeigt nach Ihrer Wahl bereitstellen:
Benutzername (leer lassen, um „root“ zu verwenden):dadminE-Mail-Adresse:[E-Mail-geschützt] Passwort:Passwort (erneut):Superuser erfolgreich erstellt.
Sobald Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.
Starten Sie die Django-App
Standardmäßig kann auf Django-Anwendungen nur von localhost aus zugegriffen werden. Damit Django eine Verbindung zum Internet herstellt, müssen Sie Django für externe Hosts zulassen. Sie können dies tun, indem Sie Ihre Server-IP in IP settings.py:
hinzufügen
nano /opt/djangoproject/djangoproject/settings.py
Ändern Sie die folgende Zeile:
ALLOWED_HOSTS =['ip_server_Anda']
Speichern und schließen Sie die Datei. Führen Sie dann die Django-Anwendung mit dem folgenden Befehl aus:
cd /opt/djangoproject
python3 manage.py runserver 0.0.0.0:8000
Sie sehen die folgende Ausgabe:
Überwachung von Dateiänderungen mit StatReloaderDurchführung von Systemprüfungen...Systemprüfung ergab keine Probleme (0 stummgeschaltet).03. März 2020 - 02:31:19Django Version 3.0.3, unter Verwendung der Einstellungen 'djangoproject.settings'Entwicklungsserver starten um http://0.0.0.0:8000/Beenden Sie den Server mit CONTROL-C. Die Django-Anwendung wird nun gestartet und läuft auf Port 8000.
An diesem Punkt ist die Django-Anwendung nun auf Port 8000 betriebsbereit. Sie können jetzt mit dem nächsten Schritt fortfahren.
Konfigurieren Sie SELinux und Firewall auf Rocky Linux 8
Als nächstes müssen Sie die Ports 8000 und 80 durch die Firewall zulassen. Sie können sie mit dem folgenden Befehl zulassen:
firewall-cmd --permanent --add-port=8000/tcp
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --reload
Als nächstes konfigurieren Sie SELinux mit dem folgenden Befehl:
setsebool httpd_can_network_connect on -P
Sobald Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.
Zugriff auf Django-Anwendungen
Sie können auf die Django-Anwendung zugreifen, indem Sie die URL http://your-server-ip:8000 besuchen. Sie sehen die folgende Seite:
Sie können auch über die URL http://server-ip:8000/admin auf die Verwaltungsoberfläche von Django zugreifen. Sie sehen die folgende Seite:
Geben Sie den Admin-Benutzernamen und das Passwort ein und klicken Sie auf die Schaltfläche Log in . Sie sehen die folgende Seite:
Installieren Sie Nginx und Gunicorn auf Rocky Linux 8
In diesem Abschnitt installieren wir Gunicorn zum Erstellen und Verwalten von Django-Diensten und Nginx zum Bereitstellen von Django-Anwendungen.
Installieren Sie zuerst Nginx mit dem folgenden Befehl:
dnf install nginx -y
Als nächstes installieren Sie Gunicorn mit dem PIP-Befehl wie unten gezeigt:
pip3 install gunicorn
Sobald beide Pakete installiert sind, starten Sie den Nginx-Dienst und aktivieren Sie ihn nach dem Systemneustart mit dem folgenden Befehl:
systemctl start nginx
systemctl enable nginx
Ändern Sie als Nächstes den Eigentümer des Verzeichnisses /opt/djangoproject
zu Nginx wie unten gezeigt:
chown -R nginx:nginx /opt/djangoproject
Dateisystemdienst für Django erstellen
Erstellen Sie als Nächstes eine systemd-Dienstdatei, um die Django-Dienste mit dem folgenden Befehl zu verwalten:
nano /etc/systemd/system/django.service
Fügen Sie die folgende Zeile hinzu:
[Unit]Description=django daemonAfter=network.target[Service]User=nginxGroup=nginxWorkingDirectory=/opt/djangoprojectExecStart=/usr/local/bin/gunicorn --workers 3 --bind unix:/opt/djangoproject/ djangoproject.sock djangoproject.wsgi:application[Install]WantedBy=multi-user.target
Speichern und schließen Sie die Datei und laden Sie dann den systemd-Daemon mit dem folgenden Befehl neu:
systemctl daemon-reload
Starten Sie als Nächstes den Django-Dienst und aktivieren Sie ihn nach dem Systemneustart mit dem folgenden Befehl:
systemctl start django
systemctl enable django
Sie können jetzt den Status des Django-Dienstes mit dem folgenden Befehl überprüfen:
systemctl status django
Sie sehen die folgende Ausgabe:
Nginx für Django konfigurieren
Als nächstes konfigurieren Sie Nginx als Reverse-Proxy für Django. Erstellen Sie dazu mit dem folgenden Befehl eine neue Nginx-Konfigurationsdatei:
nano /etc/nginx/conf.d/django.conf
Fügen Sie die folgende Zeile hinzu:
server {listen 80; server_name your-server-ip location =https://cdn.linuxid.net/favicon.ico?x87109 { access_log off; log_not_found aus; } location /static/ { root /opt/djangoproject; } location / { proxy_set_header Host $http_host; Proxy_Set_Header X-Real-IP $remote_addr; Proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $schema; Proxy_pass http://unix:/opt/djangoproject/djangoproject.sock; }}
Speichern und schließen Sie die Datei, wenn Sie fertig sind. Testen Sie dann nginx mit dem folgenden Befehl auf Syntaxfehler:
nginx -t
Wenn keine Fehler vorliegen, wird die folgende Ausgabe angezeigt:
nginx:Die Syntax der Konfigurationsdatei /etc/nginx/nginx.conf ist oknginx:Der Test der Konfigurationsdatei /etc/nginx/nginx.conf ist erfolgreich
Starten Sie als Nächstes den Nginx-Dienst neu, um die Änderungen zu implementieren:
systemctl start nginx
Sie können Nginx auch mit dem folgenden Befehl verifizieren:
systemctl status nginx
Sie erhalten die folgende Ausgabe:
Sie können jetzt über die URL http://server_IP_address.
auf Django-Anwendungen zugreifenSchlussfolgerung
In diesem Handbuch haben wir gelernt, wie man Django auf Rocky Linux 8 und CentOS 8 installiert. Wir haben auch gelernt, wie man mit Gunicorn Django-Dienste erstellt und verwaltet und Nginx als Reverse-Proxy konfiguriert, um Django-Anwendungen bereitzustellen.