【发布时间】:2018-12-04 11:11:41
【问题描述】:
我使用 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。我只是说这只是因为它可能与标题名称的结构有关。虽然我也尝试了不同的标题名称排列以防万一。
【问题讨论】:
-
问题可能是我们没有输入“if 语句”吗?这意味着 $http_x_my_custom_variable 实际上没有设置为“1”?
-
我不这么认为。我确认后端的标头设置为“1”。
标签: nginx http-headers