我最初的问题是如何为Django登录页面启用HTTPS,唯一的回应是建议我- 将整个站点设置为仅HTTPS。
鉴于我正在使用Django 1.3和nginx,将网站设为仅HTTPS的正确方法是什么?
一个回应提到了一个中间件解决方案,但有一个警告:
Django在维护POST数据时无法执行SSL重定向。请整理你的视图,以便仅在GET期间进行重定向。
关于服务器故障的有关nginx重写为https的问题,还提到了POST丢失数据的问题,而我对nginx不够熟悉,无法确定解决方案的工作情况。
和EFF的建议去HTTPS只,注意到:
设置时,应用程序必须在cookie上设置Secure属性。此属性指示浏览器仅通过安全(HTTPS)传输而不是不安全(HTTP)发送cookie。
像Django-auth这样的应用程序是否可以将Cookie设置为安全?还是我必须编写更多的中间件?
因此,就以下方面而言,配置Django / nginx组合以实现仅HTTPS的最佳方法是:
编辑 -我在测试多个浏览器时发现的另一个问题。说我有URL https://mysite.com/search/,它有一个搜索表单/按钮。我按一下按钮,处理在Django像往常一样的形式,做一个Django HttpResponseRedirect来http://mysite.com/search?results=”foo”。Nginx https://mysite.com/search?results="foo"根据需要将其重定向到。
但是,重定向发生时,Opera会有可见的闪光。而且它会在每次搜索中发生,即使是对于相同的搜索词(我想https确实不会缓存:)更糟糕的是,当我在IE中对其进行测试时,我首先会收到以下消息:
You are about to be redirected to a connection that is not secure - continue?
单击“是”后,紧接着是:
You are about to view pages over a secure connection - continue?
尽管第二个IE警告选项可以将其关闭-第一个警告则没有,因此每次有人进行搜索并将其重定向到结果页面时,他们至少会收到一条警告消息。
对于John C的答案的第二部分,以及Django 1.4 + …
你可以将更request.scheme
改为,而不是扩展HttpResponseRedirect https
。因为Django在Nginx的反向代理后面,所以它不知道原始请求是安全的。
在你的Django设置中,设置SECURE_PROXY_SSL_HEADER设置:
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
然后,你需要Nginx在反向代理中设置自定义标头。在Nginx网站设置中:
location / {
# ...
proxy_set_header X-Forwarded-Proto $scheme;
}
这样request.scheme == ‘https’并request.is_secure()返回True。 request.build_absolute_uri()返回https://…等等
我在Nginx上使用uwsgi运行我的DJango应用程序。它目前正在使用这些配置: chdir=/TMP/SRC/ 进程=4 线程=2 server_name 192.168.56.104; charset UTF-8; #最后,将所有非媒体请求发送到Django服务器。 我已经生成了证书。
本文向大家介绍Nginx+Tomcat多站点部署的方法,包括了Nginx+Tomcat多站点部署的方法的使用技巧和注意事项,需要的朋友参考一下 本文介绍了Nginx+Tomcat多站点部署的方法,分享给大家,具体如下: Tomcat配置: 添加多域名: Engine节点下: 添加域名1 添加域名2 注意,还需要一个默认语句,即name="localhost"的域名,否则tomcat偶尔会报空指针错
本文向大家介绍浅谈Django+Gunicorn+Nginx部署之路,包括了浅谈Django+Gunicorn+Nginx部署之路的使用技巧和注意事项,需要的朋友参考一下 前言 最近,我已经成功将我的个人网站从 Flask 迁移到 Django 了,最早接触 Django 的时候大概是在 4 年前,我记得那个时候 Django 中的路由配置使用 正则 来进行的,但是我有特别烦这个东西,所以就果断弃
问题内容: 我们将部署一个新的Django网站,并希望使用Google Analytics(分析)来跟踪该网站上的访问量。但是,我们不希望开发实例的所有匹配都有助于Google Analytics(分析)统计数据。 有几种方法可以解决此问题: 在settings.py中有一个配置选项,基本模板可用来决定是否包括适当的元素, 维护一个分支,在部署到生产服务器之前,我们会进入该分支,我们确保其中包括以
在 Seahub 端启用 https 免费 Self-Signed SSL 数字认证用户请看. 如果你是 SSL 付费认证用户可跳过此步. 通过 OpenSSL 生成 SSL 数字认证 openssl genrsa -out privkey.pem 2048 openssl req -new -x509 -key privkey.pem -out cacert.pem -days 1095 修改
在详细信息中,路径没有设置为,而是设置为。哪里错了?