Джанго + на uwsgi + nginx в + с SSL - запрос на рабочую конфигурацию (акцент на SSL)
есть ли у кого-нибудь рабочая конфигурация для этих четырех?
- Django
- uWSGI
- Nginx
- SSL
основной вопрос заключается в том, как правильно настроить SSL
для этого? Я много гуглил и все еще не могу заставить его работать. У меня есть рабочая настройка для http
С unix sockets
, но это все, что я мог получить.
есть некоторые другие ответы, но они в основном являются фрагментами кода, а не всей конфигурацией.
2 ответов
server {
listen 80;
server_name example.com;
rewrite ^/(.*) https://example.com/ 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;
}
}
это базовая конфигурация nginx, которая будет работать с SSL и будет пересылать запросы на uwsgi, работающий на порту 8000 (вы можете изменить это на сокет, если хотите).
для расширенных настроек SSL проверьте этой.
Я новичок в nginx, uwsgi и ssl. Здесь делится моим тестированием nginx и uwsgi config.
в основном, есть четыре шага для развертывания Django поддерживает только SSL / HTTPS.
- настройка SSL-сертификата
- используйте openssl для создания сервера.ЭЛТ и сервер.ключ
сервер openssl req-new-x509-nodes-out.сервер crt-keyout.ключ
- используйте openssl для создания сервера.ЭЛТ и сервер.ключ
- конфигурация nginx.conf и uwsgi.ini под Django проект
- установить nginx.conf (извините, макет странный в текстовом блоке, поэтому я вставляю изображение здесь.)
- символическая ссылка на этот файл из /etc/nginx / sites-включена, чтобы nginx мог ее видеть
sudo ln-s/path/to/django / example_nginx.conf/etc/nginx/сайты-включено/
- конфигурация uwsgi.ini в рамках проекта django
-
конфиг settings.py
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https') SESSION_COOKIE_SECURE = True CSRF_COOKIE_SECURE = True SECURE_SSL_REDIRECT = True
-
перезапустить nginx и uwsgi
- перезапустите nginx
sudo/etc / init.перезапуск d/nginx
- запустить на uwsgi
uwsgi --ini / path/to/django / example_uwsgi.ini
- перезапустите nginx