有没有人有这四种工作配置?
- Django
- uWSGI
- Nginx
- SSL
主要问题是如何正确设置SSL
?我已经搜索了很多东西,仍然无法让它发挥作用。我有一个http
unix sockets
的工作设置,但就我所能做到的那样。
还发布了一些其他答案,但它们主要是代码段,而不是整个配置。
答案 0 :(得分:12)
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;
}
}
这是基本的nginx配置,可以使用SSL,并将请求转发到在端口8000上运行的uwsgi(如果需要,可以将其更改为套接字)。
对于高级SSL设置,请检查THIS。
答案 1 :(得分:1)
我是nginx,uwsgi和ssl的新手。这里分享我的测试nginx和uwsgi配置。
基本上,部署Django有四个步骤,仅支持SSL / HTTPS。
openssl req -new -x509 -nodes -out server.crt -keyout server.key
配置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
sudo /etc/init.d/nginx restart
uwsgi --ini /path/to/django/example_uwsgi.ini