Ich habe einen Nginx-Server, der unter Debian läuft. Auf demselben Server läuft auch uWSGI mit einer Flask Python-Anwendung. Eine Sache, die ich versuche, ist, einen HTTP-Header an die Flask-Anwendung von nginx zu übergeben, der durch eine nginx-Bedingung bestimmt wird, nämlich welcher virtuelle Host die Anfrage ausführt.Übergeben Sie eine Kopfzeile von Nginx zum uWSGI-Backend, das eine Flask-Anwendung ausführt.
Ich versuche, einen HTTP-Header von Nginx (nicht vom Client) an das uWSGI-Backend zu übergeben, aber es wird nicht in Flask's DebugToolbar unter HTTP-Anfrage angezeigt.
Relevante Abschnitt von nginx Config
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;
}
Während des Laufens sagte nginx Config des Headers nicht unter Flask-DebugToolbar HTTP-Request-Abschnitt nicht angezeigt, obwohl ich nicht sicher bin, wie zuverlässig das ist, weil ich ein injizierten HTTP-Header Ich weiß, beeinflusst Anwendungsverhalten mit Burp Suite X-Foo-Bar: 1
und es nicht unter der HTTP-Anfrage Abschnitt angezeigt, aber es hatte Einfluss auf das Verhalten der Anwendung (Eine bestimmte if-Anweisung in @app.before_request
) Offensichtlich würde ich die Kopfzeile löschen, wenn der Client für es hinzugefügt sicherheits Gründe.
Der Screenshot oben ist HTTP-Header mit Flask-DebugToolbar versucht uwsgi_param
für HTTP-Header zu tun.
Danke