使用nginx将http重定向到https而不是使用django-sslify?

时间:2014-05-26 20:09:43

标签: python django redirect ssl nginx

我尝试使用django-sslify和django-secure将所有http请求重定向到https,但我无法让它工作。使用nginx重定向它们是否是一种有效的解决方案,如下所示:link 或者,也许有人可以解释一下,我的配置现在有什么问题: 在我添加“proxy_set_header Host $ host;”之前到第二个服务器块它很好地重定向,但表单不起作用,因为csrf保护引发了引用错误。

server {
listen 80;
server_name domain.com;

location /static {
    alias /home/adrian/sites/www.domain.com/static;
}

location / {
    proxy_set_header Host $host;
    proxy_pass http://unix:/tmp/www.domain.com.socket;
}
}
server {
    listen 200.200.200.200:443;
    server_name domain.com;

 location /static {
    alias /home/adrian/sites/www.domain.com/static;
}

location / {

    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-Proto https;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_pass http://unix:/tmp/www.domain.com.de.socket;
}

    ssl on;
    ssl_certificate /etc/nginx/ssl/ssl.crt;
    ssl_certificate_key /etc/nginx/ssl/domain.com.de.key;

   ssl_prefer_server_ciphers on;

}

1 个答案:

答案 0 :(得分:0)

好的,没关系。 Django-sslify由于某种原因没有工作,所以我用

重试了django-secure
proxy_set_header Host $host;

设置它确实像魅力一样工作。但我真的很想听,如果用nginx重定向会更好或更有效,我会接受这个答案。感谢。