python - 使用 nginx 作为反向代理将 http 路由到 https

标签 python django ssl https nginx

我的网站有一个登录页面,我需要使用 https。我在 apache 上使用 django 运行网站,nginx 前端充当反向代理做两件事:

1) 提供所有 django 静态内容 2) 配置支持ssl

ssl 的东西都设置好了,似乎工作正常....即。我可以去两个

http://www.mysite.com/login

https://www.mysite.com/login

没有问题,https 要求我验证证书等。

我的问题是我正在尝试设置 nginx,以便无法在非 https 的登录页面中输入密码。我无法让它重新定向。

谁能解释一下这是如何工作的

ssl 在 443 上运行,nginx 在 80 端口转发

谢谢

最佳答案

这些重定向更适合在您的网络应用程序中配置,而不是 Nginx,因为虽然您可能在 Nginx 中硬编码重定向,但在与您的 View 直接相关的 Python 中设置它们更容易。

当然只是我的意见。

djangosnippets 上有大量的 SSL 重定向中间件,可以将 url 重定向到 https。

这里有一个装饰器,所以你可以在你的 View 上做 @securehttp://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/

相关文章:

java - 将 python sklearn 模型导出到生产环境 (java/c++)

python - 从 Flask 框架编写 CSV

python - 如何在 Gensim 的 LdaModel 中记录时代

python - Django 1.6,如何为CreateView设置字段默认值

python - 如何在 Windows 上安装 Python ssl 模块?

python imaplib 解析 gmail

python - Django:有没有办法过滤模型并忽略存储的连字符?

django - 如何将过滤器应用于 Django REST 框架中的嵌套资源?

ssl - 更改负载均衡器 SSL 证书的域

apache - 客户端证书选择