- Die Skalierung Ihrer Web-App ist entscheidend für den Erfolg.
- Django ist großartig, aber für echte Skalierbarkeit werden Gunicorn und Nginx benötigt.
- Dieser Beitrag zeigt Ihnen, wie Sie mit Gunicorn und Nginx eine skalierbare Django-App erstellen.
- Dieser Beitrag folgt in „Kali Linux“. Sie können jedes Linux-basierte Betriebssystem verwenden.
Einführung:
- Der Aufbau einer Webanwendung, die eine wachsende Anzahl von Benutzern und Anfragen bewältigen kann, ist für jedes erfolgreiche Projekt von entscheidender Bedeutung.
- Django, ein leistungsstarkes Python-Framework, bietet eine solide Grundlage, aber für echte Skalierbarkeit müssen Sie die Leistungsfähigkeit von Tools wie Gunicorn und Nginx nutzen.
- Dieser Beitrag führt Sie durch den Prozess der Einrichtung einer skalierbaren Django-Anwendung mit Gunicorn und Nginx, um sicherzustellen, dass Ihre Website den Anforderungen einer wachsenden Benutzerbasis gerecht wird.
⚙️ Einrichten -
- Ich mache das unter Linux.
- Überprüfen Sie zunächst, ob Python3, Pip und Nginx installiert sind oder nicht.
- Zur Installation verwenden Sie diesen Befehl (Installation im Home/Desktop oder neuen Terminal)
sudo apt install python3 python3-pip nginx
- Erstellen Sie nun eine virtuelle Umgebung (dazu einen neuen Ordner erstellen?)
- Aktivieren Sie die Umgebung
source environment_name/bin/activate # use name created above "environment_name"
- Jetzt Pakete installieren? in der Umwelt
pip install django
pip install gunicorn
// or directly install both
pip install django gunicorn
Django-Projekt erstellen
- Verwenden Sie diesen Befehl, um ein Django-Projekt zu erstellen
django-admin startproject myproject # use any name "myproject"
Erstellen Sie eine Gunicorn-Konfigurationsdatei
- Verwenden Sie diesen Befehl
nano gunicorn_conf.py # use any name but using same better "gunicorn_conf.py"
- Fügen Sie den folgenden Code in „gunicorn_config.py“ hinzu.
import multiprocessing
bind = '127.0.0.1:8000' # Django running port/link
workers = multiprocessing.cpu_count() * 2 + 1
- Speichern Sie die Datei mit „STRG + O“ (zum Speichern), drücken Sie ENTER, „STRG + X“ (zum Beenden)
- Dadurch werden Worker erstellt und wir sollten außerdem unseren Django-Lauflink hinzufügen.
### Führen Sie das Django-Projekt/die Django-Anwendung mit gunicorn aus
- Navigieren Sie zunächst zum Projektordner
cd myproject # navigate to Django Project "myproject"
- Führen Sie nun diesen Befehl aus
gunicorn myapp.wsgi:application -c ../gunicorn_conf.py # here myapp is myproject
# here "myapp" is a Django project name, and at last gunicorn_conf.py is a gunicorn configuration file which created above/before.
- Nehmen Sie nun einige Änderungen im Django-Projekt vor
- Ändern Sie zunächst etwas Code in „settings.py“ im Projektordner. Verzeichnis myproject/myproject/settings.py > Django-Projekt
- Verwenden Sie dazu einen beliebigen Code-Editor wie VS Code. Um vom Terminal aus zu öffnen, verwenden Sie diesen Befehl
code- oss
# to open vs code from terminal
- Fügen Sie diesen Code hinzu
# example code
ALLOWED_HOSTS = ['localhost', '0.0.0.0', '127.0.0.1'] # use IP address here
- Im obigen Befehl haben wir die IP-Adresse verwendet, um ein weiteres neues Terminal zu öffnen und diesen Befehl auszuführen, um alles über das Netzwerk zu erfahren.
ifconfig
Erstellen Sie eine Nginx-Konfigurationsdatei
- Öffnen Sie ein weiteres neues Terminal und führen Sie diesen Befehl aus
sudo nano /etc/nginx/sites-available/myapp # use any name "myapp"
# better use vs code instead of nano
sudo code- oss /etc/nginx/sites-available/myapp # check code-oss
- Fügen Sie Code in dieser Nginx-Datei hinzu
server {
listen 80;
server_name your_domain.com; # Replace with your domain or IP address
# example for aboveline: server_name 'ipaddress' 'another domain' ;
location / {
proxy_pass http://127.0.0.1:8000; # Gunicorn's default address
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
- speichern Sie die Datei
- Erstellen Sie einen symbolischen Link, um die Nginx-Konfiguration zu aktivieren, und führen Sie diesen Befehl aus
sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled
# change "myapp" to nginx config file name used above
- Das ist es.
## Testen:
- Überprüfen Sie zunächst die Nginx-Konfigurationsdatei auf Syntaxfehler.
sudo nginx -t
- Wenn Sie keine Fehler haben, starten Sie zunächst Nginx mit diesem Befehl neu
sudo systemctl restart nginx
Einrichten einer Firewall für Nginx
- Öffnen Sie ein neues Terminal und installieren Sie dieses Paket
sudo apt install ufw
- Jetzt Nginx durch die Firewall zulassen
sudo ufw allow 'Nginx Full'
Gebrauchsanweisung -
- Starten Sie Nginx zunächst, indem Sie ein neues Terminal öffnen
sudo systemctl start nginx
- Um nun das komplette Projekt zu starten, öffnen Sie ein Terminal und gehen Sie zur erstellten und aktivierenden virtuellen Umgebung
gunicorn myapp.wsgi:application -c ../gunicorn_conf.py
# in above code "myapp" is a Django project name
# last gunicorn_conf.py is a gunicorn configuration file name
- Nun startete das komplette Projekt.
- Jetzt können Sie Ihr Django-Projekt mit Ihrer IP-Adresse öffnen.
- Navigieren Sie zum Browser und suchen Sie mit Ihrer IP-Adresse.
- Um Nginx zu stoppen, verwenden Sie diesen Befehl
sudo systemctl stop nginx
Viel Spaß beim Codieren? - Sei faul
DM kontaktieren – Twitter(X)
Kontakt-Mail – sanya.san@myyahoo.com
Das obige ist der detaillierte Inhalt vonErstellen einer skalierbaren Django-Anwendung mit Gunicorn und Nginx. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!