烧瓶故障';s request.u使用gunicorn和heroku以及烧瓶是否安全
我在网上看到过这个问题的讨论,但是关于解决这个问题的解释并不十分清楚,特别是如果你对Flask不太熟悉的话。当flask在Heroku上的gunicorn上运行时,request.is_secure始终返回False,即使请求是通过HTTPS完成的,这也是一个问题。我用的是烧瓶0.8和gunicorn 19.0.0 我找到了链接,使它看起来像是你用这些内容创建了一个名为gunicorn.py的文件,但这只是在Heroku服务器上创建了一个导入错误。然后,我尝试通过执行以下操作,将这些设置直接应用到我的烧瓶故障';s request.u使用gunicorn和heroku以及烧瓶是否安全,heroku,flask,gunicorn,Heroku,Flask,Gunicorn,我在网上看到过这个问题的讨论,但是关于解决这个问题的解释并不十分清楚,特别是如果你对Flask不太熟悉的话。当flask在Heroku上的gunicorn上运行时,request.is_secure始终返回False,即使请求是通过HTTPS完成的,这也是一个问题。我用的是烧瓶0.8和gunicorn 19.0.0 我找到了链接,使它看起来像是你用这些内容创建了一个名为gunicorn.py的文件,但这只是在Heroku服务器上创建了一个导入错误。然后,我尝试通过执行以下操作,将这些设置直接应用
app
Flask对象:
app.secure_proxy_ssl_header = ('HTTP_X_FORWARDED_PROTO', 'https')
app.forwarded_allow_ips = '*'
app.x_forwarded_for_header = 'X-FORWARDED-FOR'
app.secure_scheme_headers = {
'X-FORWARDED-PROTO': 'https',
}
但仍然没有骰子。有人能给我一个清晰的解释,我必须做什么,以及把配置放在哪里吗?原来解决方案比我想象的要简单得多。我所要做的就是:
从werkzeug.contrib.fixers导入ProxyFix
然后
app.wsgi\u app=ProxyFix(application.wsgi\u app)
我知道您已经解决了问题,但我遇到了类似的问题,必须在Apache中设置第二个RequestHeader:
ProxyPreserveHost On
RequestHeader set X-Forwarded-Proto "https"
RequestHeader set X-Scheme https
Timeout 300
ProxyTimeout 300
这似乎奏效了 它应该是ProxyFix(app.wsgi\u app)
而不是ProxyFix(application.wsgi\u app)
?