Nginx 和 uWSGI 剥离 HTTP_AUTHORIZATION

Chr*_*r H 4 django nginx uwsgi

我正在使用 API,似乎 Nginx 和 uWSGI 正在删除我传递的 HTTP_AUTHORIZATION 标头。

我将 curl POST 发送到运行 Django 的 API 服务器。当我让 Django 打印出 request.META 列表时,我看到缺少 HTTP_AUTHORIZATION。

Nginx 配置包含这些:

uwsgi_pass_header HTTP_AUTHORIZATION;
uwsgi_pass_request_headers on;
Run Code Online (Sandbox Code Playgroud)

但是做这两个pass似乎没有任何影响。

知道为什么会有这种剥离......它发生在 Nginx 级别、uWSGI 级别还是 Django 级别?

eli*_*lim 5

尝试将卷曲帖子中的下划线更改HTTP_AUTHORIZATION为破折号HTTP-AUTHORIZATION

默认情况下,nginx 将带有下划线的标头标记为无效并忽略无效标头。

您可以使用 nginx 指令来允许标头中的下划线,underscores_in_headers on;或者不忽略带有ignore_invalid_headers off;.