Nginx仅配置80端口时,Django应用能否发起HTTPS POST请求?
问题解答
第一个疑问:Nginx仅配置80端口时能否发起HTTPS POST请求?
完全可以。Nginx配置的80端口是用来接收外部发给你服务器的HTTP请求,而你的Django应用是作为客户端主动向外部API发起HTTPS请求——这是两个完全独立的场景,互相没有影响。只要你的服务器能正常访问外部HTTPS服务,不管Nginx配的是80还是其他端口,Django用requests发HTTPS POST都不受限制。
第二个疑问:服务器开放443端口,但Nginx仅配置80端口,上述方式能否正常工作?
能正常工作,原因如下:
- 你服务器开放443端口但Nginx未配置,仅意味着你的服务器不会通过443端口接收外部的HTTPS请求,但这不影响你的Django应用作为客户端向外发起HTTPS请求。
- 你代码里指定了
verify='\fullChainCert.crt',只要这个证书文件路径正确、证书本身能验证目标API的HTTPS合法性,且目标API的HTTPS服务正常响应,就能拿到200的正常结果,和Nginx的80端口配置没有关系。
补充:如果你的Django是向自己服务器的443端口发请求,那因为Nginx没配置443的HTTPS服务,这时候才会失败,但根据描述你是向外部API发送数据,所以不存在这个问题。
内容的提问来源于stack exchange,提问作者ptr808
相关产品推荐
相关产品推荐

