2015-04-23 12 views
11

Hat jemand eine funktionierende Konfiguration für diese vier?Django + uWSGI + Nginx + SSL - Anfrage für funktionierende Konfiguration (Schwerpunkt SSL)

- Django 
- uWSGI 
- Nginx 
- SSL 

Die wichtigste Frage ist, wie man richtig SSL für diesen Satz bis zu? Ich habe viel gegooglet und kann es immer noch nicht zur Arbeit bringen. Ich habe eine funktionierende Einrichtung für http mit unix sockets, aber das ist soweit ich bekommen konnte.

Es gibt einige andere Antworten geschrieben, aber sie sind meist Code-Schnipsel, und nicht eine ganze Konfiguration.

+1

Es ist üblich, dass ssl bei nginx terminiert, dann spricht nginx mit den Upstream-Servern (uWSGI) über http. Es gibt viele viele Beispiele von diesem online, von denen ist https://www.digitalcocean.com/community/tutorials/how-to-set-up-nginx-load-balancing-with-ssl-termination – dm03514

+0

@ dm03514 I Verstehen Sie, dass 'https' am öffentlich zugänglichen' nginx reverse proxy server 'enden wird. Der Tutorial-Link ist hilfreich. Gilt der 'location/... proxy' args Block für 'uWSGI', müssen diese durch 'uwsgi' Argumente ersetzt werden? –

Antwort

11
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 eine grundlegende nginx-Konfiguration, die mit SSL arbeiten und Anfragen weiterleiten läuft auf Port 8000 uwsgi (Sie diese Option, wenn Sie möchten, ändern können an Buchse).

Für erweiterte SSL-Einstellungen überprüfen Sie THIS.

+0

Ich kann das nicht zur Arbeit bringen. Hast du das schon mal für 'uwsgi + nginx + django + ssl' gemacht? Wenn ja, könnten Sie eine Beispieldatei "uwsgi.ini" bereitstellen? Deine Hilfe ist sehr Willkommen. Danke –

+0

In unserem Unternehmen verwenden wir uwsgi zum Ausführen von Django, aber leider kann ich hier keine Vorlage teilen. Ich kann Ihnen nur sagen, dass die Nginx-Vorlage fast identisch ist mit dieser (das ist meine persönliche). Es gibt keinen Unterschied in Bezug auf uwsgi, wenn Sie https verwenden oder nicht, also sollte das Problem woanders liegen. Ich persönlich bevorzuge Gunicorn für den Betrieb von Django (in unserem Unternehmen verwenden wir uwsgi nur, weil die neuesten Versionen Web-Sockets unterstützen). Haben Sie einen Grund, uwsgi zu benutzen? Ich kann dir eine Vorlage für das Laufen von Gunicorn geben, wenn du willst. –

+0

Ja, ich muss 'uwsgi' verwenden, um mit Web-Sockets für mein aktuelles Projekt zu arbeiten. Ich habe Gunicorn in der Vergangenheit benutzt und habe eine funktionierende Version damit. Danke für deine Hilfe, ich hoffe, dass ich das am nächsten Tag oder so lösen kann. –

Verwandte Themen