Django ist ein kostenloses Open-Source-Webframework auf hoher Ebene, das für die Entwicklung von Python-Webanwendungen verwendet wird. Es wird mit einer Reihe von Tools geliefert, mit denen Sie sichere und skalierbare Webanwendungen erstellen können. Sein Hauptziel ist es, die Erstellung komplexer Anwendungen zu erleichtern und sich um die interne Struktur zu kümmern.
In diesem Tutorial lernen wir, wie man Django installiert und Nginx als Reverse-Proxy für Django unter CentOS 8 konfiguriert.
Voraussetzungen
- Ein Server mit CentOS 8.
- Auf Ihrem Server ist ein Root-Passwort konfiguriert.
Installieren Sie erforderliche Pakete
Django ist ein Python-basiertes Framework, daher müssen Sie Python und PIP in Ihrem System installieren. Sie können sie installieren, indem Sie den folgenden Befehl ausführen:
dnf install python36 python3-pip -y
Sobald beide Pakete installiert sind, können Sie mit dem nächsten Schritt fortfahren.
Django installieren
Sie können Django mit dem PIP-Befehl wie unten gezeigt installieren:
pip3 installiert Django
Nach der Installation von Django können Sie die Version von Django mit dem folgenden Befehl überprüfen:
django-admin --version
Sie sollten die Django-Version in der folgenden Ausgabe sehen:
3.0.3
Erstellen Sie ein Django-Projekt
An diesem Punkt ist Django installiert. Jetzt ist es an der Zeit, eine neue Django-Anwendung zu erstellen.
Sie können eine neue Django-Anwendung mit dem Befehl django-admin im /opt-Verzeichnis erstellen, wie unten gezeigt:
cd /opt
django-admin startproject djangoproject
Sobald das Django-Projekt erstellt wurde, ändern Sie das Verzeichnis in djangoproject und migrieren Sie die Änderungen mit dem folgenden Befehl:
cd djangoproject
python3 manage.py migrieren
Sie sollten die folgende Ausgabe erhalten:
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 zum Verwalten des Django-Projekts erstellen. Sie können es mit dem folgenden Befehl erstellen:
python3 manage.py erstellt einen Superuser
Sie werden aufgefordert, Ihren Benutzernamen, Ihre E-Mail-Adresse und Ihr Passwort anzugeben. Sie können sie wie unten gezeigt nach Ihrer Wahl bereitstellen:
Benutzername (leer lassen, um „root“ zu verwenden):dadminE-Mail-Adresse:[email protected]Passwort:Passwort (erneut):Superuser erfolgreich erstellt.
Wenn Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.
Django-Anwendung starten
Standardmäßig kann von den Remote-Hosts nicht auf die Django-Anwendung zugegriffen werden. Sie müssen also Django für externe Hosts zulassen. Sie können dies tun, indem Sie Ihre Server-IP in settings.py:
hinzufügennano /opt/djangoproject/djangoproject/settings.py
Ändern Sie die folgende Zeile:
ALLOWED_HOSTS =['your-server-ip']
Speichern und schließen Sie die Datei. Starten Sie dann die Django-Anwendung mit dem folgenden Befehl:
cd /opt/djangoproject
python3 manage.py runserver 0.0.0.0:8000
Sie sollten die folgende Ausgabe sehen:
Ü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 dieser Stelle wird die Django-Anwendung nun gestartet und läuft auf Port 8000. Sie können nun mit dem nächsten Schritt fortfahren.
Konfigurieren Sie SELinux und die Firewall
Als nächstes müssen Sie Port 8000 und 80 durch Firewalld 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 auf -P
Wenn Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.
Zugriff auf die Django-Anwendung
Sie können auf die Django-Anwendung zugreifen, indem Sie die URL http://your-server-ip:8000 besuchen. Sie sollten die folgende Seite sehen:
Sie können auch über die URL http://your-server-ip:8000/admin auf die Django-Admin-Oberfläche zugreifen. Sie sollten die folgende Seite sehen:
Geben Sie Ihren Admin-Benutzernamen und Ihr Passwort ein und klicken Sie auf Protokoll in Taste. Sie sollten die folgende Seite sehen:
Installieren Sie Nginx und Gunicorn
In diesem Abschnitt werden wir Gunicorn installieren, um den Django-Dienst zu erstellen und zu verwalten, und Nginx, um die Django-Anwendung bereitzustellen.
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 installiere 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 Besitz des Verzeichnisses /opt/djangoproject in Nginx, wie unten gezeigt:
chown -R nginx:nginx /opt/djangoproject
Erstellen Sie eine Systemd-Dienstdatei für Django
Erstellen Sie als Nächstes eine systemd-Dienstdatei zum Verwalten des Django-Dienstes mit dem folgenden Befehl:
nano /etc/systemd/system/django.service
Fügen Sie die folgenden Zeilen 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 aktiviert django
Sie können jetzt den Status des Django-Dienstes mit dem folgenden Befehl überprüfen:
systemctl status django
Sie sollten die folgende Ausgabe sehen:
Nginx für Django konfigurieren
Als nächstes müssen Sie Nginx als Reverse-Proxy für Django konfigurieren. Erstellen Sie dazu mit dem folgenden Befehl eine neue Nginx-Konfigurationsdatei:
nano /etc/nginx/conf.d/django.conf
Fügen Sie die folgenden Zeilen hinzu:
server {listen 80; server_name your-server-ip location =/favicon.ico { 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 alles in Ordnung ist, sollten Sie die folgende Ausgabe erhalten:
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 starte nginx
Sie können Nginx auch mit dem folgenden Befehl überprüfen:
systemctl status nginx
Sie sollten die folgende Ausgabe erhalten:
Sie können nun über die URL http://your-server-ip.
auf Ihre Django-Anwendung zugreifenSchlussfolgerung
In diesem Leitfaden haben wir gelernt, wie man Django unter CentOS 8 installiert. Wir haben auch gelernt, wie man mit Gunicorn den Django-Dienst erstellt und verwaltet und Nginx als Reverse-Proxy konfiguriert, um Django-Anwendungen zu bedienen.