阿小信大人的头像
Talk is cheap. Show me the code. Linus Torvalds

flask通过nginx代理后base_url拿不到正确的url_scheme2016-04-14 12:31

Nginx配置了https请求后,用户发起https请求时首先和Nginx建立连接,完成SSL握手,而后Nginx作为代理是以http协议将请求转给gunicorn处理的,Nginx再把gunicorn的输出通过SSL加密发回给用户,这中间是透明的,gunicorn只是在处理http请求而已。

这时即使请求时用的是https,flask中的request中`wsgi.url_scheme`收到的仍然是http,所以在其他url相关的地方的值都是http链接。

解决办法是在flask中使用ProxyFix,并且确保nginx配置中设置了`Host`和`X-Forwarded-Prot

......
#Python#   #flask 评论[0]阅读全文[945]