jtl*_*999 5 python wsgi nginx flask uwsgi
我有一个在Debian上运行的Nginx服务器。同一台服务器还通过Flask Python应用程序运行uWSGI。我想做的一件事是,将nginx条件确定的HTTP头从nginx传递到Flask应用程序,即哪个虚拟主机正在运行请求。
我正在尝试将HTTP标头从nginx(而不是从客户端)传递到uWSGI后端,但是在HTTP请求下的Flask的DebugToolbar中没有显示。
Nginx配置中的相关部分
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri =404 @flaskapplication;
}
location @flaskapplication {
include uwsgi_params;
uwsgi_pass unix:/tmp/flaskapplication.sock;
uwsgi_param HTTP_X_TESTING 'bar';
uwsgi_modifier1 30;
}
Run Code Online (Sandbox Code Playgroud)
在运行上述nginx config时,虽然Flask-DebugToolbar HTTP请求部分下没有显示该标头,但是我不确定这是否可靠,因为我注入了一个HTTP标头,但我知道这会影响使用Burp Suite的应用程序行为X-Foo-Bar: 1,但它没有显示在HTTP请求部分下,但它确实影响了应用程序的行为(中的if语句@app.before_request)显然,如果客户端出于安全原因添加了标头,我将删除标头。
上面的屏幕截图是带有Flask-DebugToolbar uwsgi_param的HTTP标头,试图对HTTP标头进行处理。
谢谢
解决了。
我启用了 Flask 的调试模式并引发了异常以获取对 REPL 的访问权限。
uwsgi_param HTTP_X_FOO 'Foo bar lorem ipsum';在相关位置块中的 nginx 配置中,看起来request.headers像这样(私有和不相关的信息已被编辑)
所以request.headers!= Flask-DebugToolbar 请求面板。
| 归档时间: |
|
| 查看次数: |
3021 次 |
| 最近记录: |