Python 是否需要在Django应用程序中调整settings.py以正确设置SSL保护(使用nginx反向代理+;gunicorn)

Python 是否需要在Django应用程序中调整settings.py以正确设置SSL保护(使用nginx反向代理+;gunicorn),python,django,ssl,nginx,Python,Django,Ssl,Nginx,我有一个Django应用程序,其中Web服务器是nginx reverse proxy+gunicorn 我的问题是:在Django应用程序的Web服务器上安装SSL时,是否需要在正确加载之前调整设置.py?或者即使不调整settings.py也可以访问 目前,对于我来说,只是超时,我正在尝试诊断这是否是我在Web服务器上安装SSL的问题,还是因为我尚未调整settings.py文件 例如,Django文档建议在settings.py中设置以下内容: 1) 设置SECURE\u PROXY\u

我有一个Django应用程序,其中Web服务器是nginx reverse proxy+gunicorn

我的问题是:在Django应用程序的Web服务器上安装SSL时,是否需要在正确加载之前调整
设置.py
?或者即使不调整settings.py也可以访问

目前,对于我来说,只是超时,我正在尝试诊断这是否是我在Web服务器上安装SSL的问题,还是因为我尚未调整settings.py文件

例如,Django文档建议在
settings.py
中设置以下内容:

1) 设置
SECURE\u PROXY\u SSL\u HEADER=('HTTP\u X\u FORWARDED\u PROTO','https')
以防代理吞并
https

2) 将
SECURE\u SSL\u REDIRECT
设置为
True
将http流量定向到https。虽然这可以在Web服务器上更安全地完成

3) 将
SESSION\u COOKIE\u SECURE
CSRF\u COOKIE\u SECURE
设置为
True
可确保仅通过https发送这些COOKIE

这些设置看起来都不是正确加载所必需的



事实证明,最后一根稻草是将相关端口(即端口443)包括在Azure门户中(我的基础设施所在地)。

一般来说,您不需要更改任何内容即可使SSL正常工作。上述建议增加了安全性,但它们不是必须的

如果您的请求超时,可能有两个原因:

  • NginX未侦听端口443。张贴
    .conf
    文件以确保

  • 您的服务器上安装了防火墙,它阻止对端口443的传入TCP请求


  • 一般来说,您不需要更改任何东西就可以使SSL正常工作。上述建议增加了安全性,但并非必须。如果超时,很可能NginX没有监听端口443。发布您的nginx conf文件以确保。@Selcuk:我也这么想。您可以添加这个作为答案,我将接受它并继续诊断我的web服务器。顺便说一句,如果你有任何建议,我可以看看,会很高兴听到你(我在这里设置了一个单独的问题:)你的配置文件看起来很好,我。我会剥离所有非关键位置指令(只留下proxy_pass块),以拥有一个裸露的minimum.conf文件并使用它进行测试。到目前为止,我假设我不必在单独的机器上打开端口443。这不可能是问题,对吧?不,不可能,它们完全无关。出于同样的原因,您也不需要在数据库计算机上打开端口80。