wake-up-neo.net

Django + uWSGI + Nginx + SSL - Bitte um funktionierende Konfiguration (Schwerpunkt auf SSL)

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.

13
Aaron Lelevier
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 .

12
Domen Blenkuš

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.

  1. Ein SSL-Zertifikat einrichten
    • benutze openssl um server.crt und server.key zu generieren

      openssl req -new -x509 -nodes -out server.crt -keyout server.key

  2. Config nginx.conf und uwsgi.ini unter Django project
    • Setze nginx.conf (sorry, das Layout ist komisch im Textblock, also füge ich hier ein Bild ein.)  enter image description here
    • symlink zu dieser Datei von/etc/nginx/sites-enabled, damit nginx sie sehen kann

      Sudo ln -s /path/to/Django/example_nginx.conf/etc/nginx/sites-enabled /

    • config uwsgi.ini unter Django project  enter image description here
  3. Config settings.py

    SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
    SESSION_COOKIE_SECURE = True
    CSRF_COOKIE_SECURE = True
    SECURE_SSL_REDIRECT = True
    
  4. Starten Sie nginx und uwsgi neu

    • starte nginx neu

      Neustart von Sudo /etc/init.d/nginx

    • run uwsgi

      uwsgi --ini /path/to/Django/example_uwsgi.ini

1
lily LIU