gpt4 book ai didi

python - 将 header 从 nginx 传递到运行 Flask 应用程序的 uWSGI 后端

转载 作者:行者123 更新时间:2023-12-03 15:46:08 24 4
gpt4 key购买 nike

我有一个在 Debian 上运行的 nginx 服务器。同一台服务器也在运行带有 Flask Python 应用程序的 uWSGI。我正在尝试做的一件事是从 nginx 将 HTTP header 传递给 Flask 应用程序,该 header 由 nginx 条件确定,即哪个虚拟主机正在运行请求。

我正在尝试将来自 nginx(而不是来自客户端)的 HTTP header 传递到 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;
}

在运行上述 nginx 配置时,上述 header 未显示在 Flask-DebugToolbar HTTP 请求部分下,尽管我不确定这有多可靠,因为我注入(inject)了一个我知道会影响使用 Burp Suite X-Foo-Bar: 1 的应用程序行为的 HTTP header 并且它没有显示在 HTTP 请求部分下,但它确实影响了应用程序行为( @app.before_request 中的某个 if 语句)显然,如果客户端出于安全原因添加了 header ,我会删除它。



上面的截图是带有 Flask-DebugToolbar 的 HTTP Headers 试图做 uwsgi_param用于 HTTP header 。

谢谢

最佳答案

解决了。

我启用了 Flask 的 Debug模式并引发了异常以访问 REPL。

uwsgi_param HTTP_X_FOO 'Foo bar lorem ipsum';在相关位置 block 中的 nginx 配置中,request.headers看起来像这样(私有(private)和不相关的信息已被编辑)

所以request.headers != Flask-DebugToolbar 请求面板。

关于python - 将 header 从 nginx 传递到运行 Flask 应用程序的 uWSGI 后端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44816054/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com