我的网站有一个登录页面,我需要使用 https。我在 apache 上使用 django 运行网站,nginx 前端充当反向代理做两件事:
1) 提供所有 django 静态内容 2) 配置支持ssl
ssl 的东西都设置好了,似乎工作正常....即。我可以去两个
和
没有问题,https 要求我验证证书等。
我的问题是我正在尝试设置 nginx,以便无法在非 https 的登录页面中输入密码。我无法让它重新定向。
谁能解释一下这是如何工作的
ssl 在 443 上运行,nginx 在 80 端口转发
谢谢
最佳答案
这些重定向更适合在您的网络应用程序中配置,而不是 Nginx,因为虽然您可能在 Nginx 中硬编码重定向,但在与您的 View 直接相关的 Python 中设置它们更容易。
当然只是我的意见。
djangosnippets 上有大量的 SSL 重定向中间件,可以将 url 重定向到 https。
这里有一个装饰器,所以你可以在你的 View 上做 @secure
。
http://djangosnippets.org/snippets/1999/
我个人使用这个稍微修改一下http://djangosnippets.org/snippets/880/
我在 settings.py
文件中将某些 url 路径设置为 SSL。
例如,在我的 conf 中我有:SSL_URLS = ( '/cart/', '/checkout/', '/accounts/' )
关于python - 使用 nginx 作为反向代理将 http 路由到 https,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4672300/