Hat jemand eine funktionierende Konfiguration für diese vier?
- Django
- uWSGI
- Nginx
- SSL
Die Hauptfrage ist, wie man SSL
dafür richtig einrichtet? Ich habe viel gegoogelt und kann es immer noch nicht zum Laufen bringen. Ich habe ein Setup für http
mit unix sockets
, aber so weit ich kann.
Es gibt einige andere Antworten, aber es handelt sich meistens um Code-Schnipsel und nicht um eine ganze Konfiguration.
server {
listen 80;
server_name example.com;
rewrite ^/(.*) https://example.com/$1 permanent;
}
server {
listen 443 ssl;
server_name example.com;
access_log /var/log/nginx/example.com_access.log combined;
error_log /var/log/nginx/example.com_error.log error;
ssl_certificate /etc/nginx/ssl/example-unified.crt;
ssl_certificate_key /etc/nginx/ssl/example.key;
location /static/ {
alias /webapps/example/static/;
}
location /media/ {
alias /webapps/example/media/;
}
location / {
proxy_pass http://localhost:8000/;
proxy_redirect off;
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;
}
}
Dies ist die grundlegende Nginx-Konfiguration, die mit SSL funktioniert und Anforderungen an uwsgi weiterleitet, die auf Port 8000 ausgeführt werden (Sie können dies in Socket ändern, wenn Sie möchten).
Überprüfen Sie für erweiterte SSL-Einstellungen THIS .
Ich bin neu bei nginx, uwsgi und ssl. Hier teilt mein Test Nginx und Uwsgi Config.
Grundsätzlich gibt es vier Schritte, um Django bereitzustellen, das nur SSL/HTTPS unterstützt.
openssl req -new -x509 -nodes -out server.crt -keyout server.key
Config settings.py
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SECURE = True
SECURE_SSL_REDIRECT = True
Starten Sie nginx und uwsgi neu
Neustart von Sudo /etc/init.d/nginx
uwsgi --ini /path/to/Django/example_uwsgi.ini