【发布时间】:2015-06-10 15:18:50
【问题描述】:
如何在 nginx(1.4.6 ubuntu) 配置中有条件地添加标头?
一开始我是这样尝试的。
location / {
add_header X-TEST-0 always-0;
set $true 1;
if ($true) {
add_header X-TEST-1 only-true;
}
add_header X-TEST-2 always-2;
}
虽然我希望我的 nginx 设置所有标头(X-TEST-0,1,2),但它只添加了标头 X-TEST-1。
接下来我是这样尝试的。
location / {
add_header X-TEST-0 always-0;
##set $true 1;
##if ($true) {
## add_header X-TEST-1 only-true;
##}
add_header X-TEST-2 always-2;
}
我的 nginx 按我的预期添加了标头 X-TEST-1 和 X-TEST-2。
我的问题是……
如何有条件地添加标题?
为什么 nginx 在我上面的第一个示例中只添加 X-TEST-1?
提前致谢!
【问题讨论】:
-
这是If is evil的经典例子
-
您可以在
if中使用set。或者使用map指令。 -
感谢您提供的信息!我可以在你链接的页面中得到我想要的一切。
-
使用
map,如serverfault.com/a/598106/119913中所述 -
感谢@KevinSmyth!我稍后会尝试。
标签: nginx