我在 DotCloud 上使用 Django,它在 uwsgi + nginx 之上使用 Django。我正在尝试将所有 http 流量重定向到 https,这导致重定向循环。我正在使用以下 http 配置
if ($http_x_forwarded_port != 443) { rewrite ^ https://$http_host/; }
Django 似乎不明白它是在 https 上运行的,并且没有保留 header 。它重定向 https://url.com/至 http://url.com/accounts/login/这是一次又一次重定向导致重定向循环。我不是真正的 nginx 专家,也不太了解它。我会做错什么?
简而言之,我如何在运行在 uswsgi 和 nginx 之上的 django 中运行重定向 http 到 https。
最佳答案
server {
listen 80;
server_name yourhttphost;
rewrite ^ https://yourhttpshost$request_uri? permanent; #301 redirect
}
server {
listen 443;
server_name yourhttpshost;
........
the rest
........
}
在 nginx 配置中使用“if”是一个非常糟糕的主意!
关于Django + uwsgi + nginx + SSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6783268/