有什么方法可以让nginx到 而不是 将特定请求标头转发给uwsgi?
我想启用nginx基本身份验证,但如果Authorization
标头转发到我的应用程序,它会破坏事情(原因,我不会进入)。如果它只是一个简单的proxy_pass
我可以proxy_set_header Authorization "";
,但我不认为这适用于uwsgi_pass
,并且没有等效uwsgi_set_header
据我所见。
感谢。
答案 0 :(得分:1)
尝试隐藏标头并忽略标头指令:
<强> uwsgi_hide_header 强>
语法:uwsgi_hide_header字段;默认值: - 上下文:http,服务器, 位置
默认情况下,nginx不会传递标题字段“Status”和 来自uwsgi服务器对客户端的响应的“X-Accel -...”。该 uwsgi_hide_header指令设置其他不可用的字段 通过。相反,如果需要通过田地 允许,可以使用uwsgi_pass_header指令。
uwsgi_ignore_headers
语法:uwsgi_ignore_headers field ...;默认值: -
上下文:http,server,location禁用某些处理 来自uwsgi服务器的响应头字段。以下字段可以 被忽略:“X-Accel-Redirect”,“X-Accel-Expires”, “X-Accel-Limit-Rate”(1.1.6),“X-Accel-Buffering”(1.1.6), “X-Accel-Charset”(1.1.6),“Expires”,“Cache-Control”,“Set-Cookie” (0.8.44)和“变化”(1.7.7)。
如果未禁用,则处理这些标题字段具有以下内容 效果:
“X-Accel-Expires”,“Expires”,“Cache-Control”,“Set-Cookie”和 “Vary”设置响应缓存的参数; “X-加速重定向” 执行内部重定向到指定的URI; “X-Accel-Limit-Rate”设置a的传输速率限制 回应客户; “X-Accel-Buffering”启用或禁用 缓冲响应; “X-Accel-Charset”设定了所需的字符集 回应。
答案 1 :(得分:0)
现在对您来说可能为时已晚,但对于任何遇到相同问题的人来说,this answer 提供了有效的解决方案。
在这种情况下,可以使用以下指令传递 Authorization
标头:
uwsgi_param HTTP_Authorization "";