Quelqu'un at-il une configuration de travail pour ces quatre?
- Django
- uWSGI
- Nginx
- SSL
La principale question est de savoir comment configurer correctement SSL
pour cela? J'ai beaucoup cherché sur Google et je n'arrive toujours pas à le faire fonctionner. J'ai une configuration de travail pour http
avec unix sockets
, mais c'est tout ce que j'ai pu obtenir.
Il y a quelques autres réponses publiées, mais ce sont principalement des extraits de code et non une configuration complète.
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;
}
}
C'est la configuration de base de nginx qui fonctionnera avec SSL et transmettra les demandes à uwsgi s'exécutant sur le port 8000 (vous pouvez le changer en socket si vous le souhaitez).
Pour les paramètres SSL avancés, vérifiez THIS .
Je suis nouveau à nginx, uwsgi et ssl. Ici partage mes tests nginx et uwsgi config.
Fondamentalement, le déploiement de Django ne prend en charge que SSL/HTTPS en quatre étapes.
openssl req -new -x509 -nodes -out server.crt -keyout server.key
Sudo ln -s /path/to/Django/example_nginx.conf/etc/nginx/sites-enabled /
Config settings.py
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SECURE = True
SECURE_SSL_REDIRECT = True
Redémarrez nginx et uwsgi
Sudo /etc/init.d/nginx restart
uwsgi --ini /path/to/Django/example_uwsgi.ini