【发布时间】:2017-12-02 14:51:23
【问题描述】:
我有一个在 Debian 上运行的 nginx 服务器。同一台服务器也在运行带有 Flask Python 应用程序的 uWSGI。我正在尝试做的一件事是从 nginx 将 HTTP 标头传递给 Flask 应用程序,该标头由 nginx 条件确定,即哪个虚拟主机正在运行请求。
我正在尝试将一个 HTTP 标头从 nginx(不是来自客户端)传递到 uWSGI 后端,但它没有显示在 Flask 的 DebugToolbar 中的 HTTP 请求下。
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 配置时,上述标头不会显示在 Flask-DebugToolbar HTTP 请求部分下,尽管我不确定这有多可靠,因为我注入了一个我知道使用 Burp Suite X-Foo-Bar: 1 影响应用程序行为的 HTTP 标头并且它没有显示在 HTTP 请求部分下,但它确实影响了应用程序的行为(@app.before_request 中的某个 if 语句)显然,如果客户端出于安全原因添加它,我会删除它。
上面的截图是带有 Flask-DebugToolbar 的 HTTP 标头尝试为 HTTP 标头执行uwsgi_param。
谢谢
【问题讨论】:
标签: python nginx flask uwsgi wsgi