我正在使用nginx作为反向代理。我正在尝试读取客户端上设置的自定义标头,因此可以使用该标头的值更新变量。
我在XHR请求中设置标头,类似于 xhr.setRequestHeader('X-My-Custom-Variable',“ 1”); xhr.setRequestHeader('X-My-Second-Custom-Variable','some-value');
从文档中,我看到我可以使用以下方法在nginx上实现此目标:
if ($http_x_my_custom_variable = ‘1’) {
set $variable $http_x_my_second_custom_variable;
}
但是,这在我运行时不起作用,未设置$ variable。
我也尝试过使用nginx map关键字,如下所示:
map $http_x_my_custom_variable $variable {
default “”;
“1” $http_x_my_second_custom_variable;
}
仍然没有任何反应。
我还确认了两个标头均设置为后端Django服务器上的期望值。
注意:我的实际标头名称更像是:X-ABM-ZHR-XAVIER。我只是说这是为了防止它与标题名称的结构有关。尽管我也尝试过不同的标头名称排列,以防万一。
答案 0 :(得分:0)
尝试在变量名称中不要使用任何破折号。
从客户端传递XMyCustomVariable,然后在nginx上使用$ http_XMyCustomVariable(或小写字母)读取它。
我知道这并不优雅,但是作为调试的第一步,我将确认这一部分。
此外,请尝试使用已知变量名之一(再次用于调试),例如在用户代理标头中发送变量1值,并使用$ http_user_agent
检查nginx