Inštalácia a konfigurácia NGINX pre Django aplikáciu
Základný diagram

Inštalácia a konfigurácia NGINX pre Django aplikáciu
Nainštaluj
nginx
na svojom serveri:
sudo apt update
sudo apt install nginx -y
Uisti sa, že
gunicorn
beží a vytvára socket na/home/django_project/gunicorn.sock
.
Vytvor NGINX server konfiguráciu
Vytvor nový konfiguračný súbor pre doménu:
sudo vim /etc/nginx/sites-available/django-test.pekny.online
Obsah konfigurácie: - bez HTTS
listen 80;
server {
server_name django-test.pekny.online www.django-test.pekny.online ;
location /static/ {
alias /home/django_project/django_project/staticfiles/;
}
location /media/ {
alias /home/django_project/django_project/media/;
}
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://unix:/home/django_project/gunicorn.sock;
}
Aktivuj konfiguráciu a deaktivuj default konfiguráciu:
sudo ln -s /etc/nginx/sites-available/django-test.pekny.online /etc/nginx/sites-enabled/
sudo rm /etc/nginx/sites-enabled/default
Reštartuj NGINX a over konfiguráciu
sudo nginx -t
sudo systemctl restart nginx
Bezpečnostné odporúčanie: Uprav Django nastavenia
V súbore
settings.py
uprav tieto nastavenia:
ALLOWED_HOSTS = ['.pekny.online']
CSRF_TRUSTED_ORIGINS = ["https://django-test.pekny.online"]
HTTPS cez Let’s Encrypt (certbot)
Viac ku Let's Encript tu
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d django-test.pekny.online -d www.peter.pekny.online
Po úspešnej inštalácii certifikátu bude tvoja aplikácia dostupná cez HTTPS. Certbot sa postará aj o automatickú obnovu certifikátov.
- Pozri či sa ti do konfigurácie aplikovali zmeny.
Obsah konfigurácie:
server {
server_name django-test.pekny.online www.django-test.pekny.online ;
location /static/ {
alias /home/django_project/django_project/staticfiles/;
}
location /media/ {
alias /home/django_project/django_project/media/;
}
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://unix:/home/django_project/gunicorn.sock;
}
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/django-test.pekny.online/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/django-test.pekny.online/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
if ($host = www.django-test.pekny.online) {
return 301 https://$host$request_uri;
} # managed by Certbot
if ($host = django-test.pekny.online) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
server_name django-test.pekny.online www.django-test.pekny.online ;
return 404; # managed by Certbot
}
Záver
Týmto máš kompletný webový stack: Django + Gunicorn + NGINX s reverznou proxy a podporou HTTPS.
Aplikácia počúva na adrese: https://peter.pekny.online
Komentáre ku článku
Zatiaľ žiadne komentáre.