map vs if
Alex Domoradov
alex.hha на gmail.com
Вт Янв 26 17:08:42 UTC 2016
А мне вот знакомый предложил такой вариант
http {
map $http_x_debug $debug {
default 0;
1 1;
}
map $debug $show_debug_header {
default "";
0 "";
1 $location;
}
}
server {
location / {
set $location L1;
add_header X-DEBUG $show_debug_header always;
}
location =/test.html {
set $location L2;
add_header X-DEBUG $show_debug_header always;
}
...
location ~/locationX {
set $location LX;
add_header X-DEBUG $show_debug_header always;
}
}
Вроде работает так, как я и хотел
# curl -s -H "X-DEBUG: 1" -I http://127.0.0.1:9898/ | grep X-DEBUG
X-DEBUG: L1
# curl -s -I http://127.0.0.1:9898/ | grep X-DEBUG
# curl -s -H "X-DEBUG: 1" -I http://127.0.0.1:9898/test.html | grep X-DEBUG
X-DEBUG: L2
# curl -s -I http://127.0.0.1:9898/test.html | grep X-DEBUG
# curl -s -H "X-DEBUG: 1" -I http://127.0.0.1:9898/non_exist.html | grep
X-DEBUG
X-DEBUG: L1
2016-01-26 18:39 GMT+02:00 Alex Domoradov <alex.hha на gmail.com>:
> Понятно, думал может можно обойтись одним мэпом.
>
> 2016-01-26 18:35 GMT+02:00 Валентин Бартенев <vbart на nginx.com>:
>
>> On Tuesday 26 January 2016 17:59:00 Alex Domoradov wrote:
>> > Немного не то, тогда у меня во всех локейшенах будет одно и тоже
>> значение
>> > X-DEBUG, а мне надо как бы "пометить" каждый локейшен своей меткой. Как
>> я
>> > это делал через if. Или я не правильно вас понял?
>> >
>> > Но выводить метки только при условии что установлен хедер X-DEBUG. Само
>> > содержимое этого хедера не имеет значение.
>> >
>> [..]
>>
>> Тогда понадобиться столько map-ов, сколько у вас location-ов.
>>
>> Либо проявить фантазию:
>>
>> map $http_x_debug $xdbg {
>> default $dbg_location;
>> "" "";
>> }
>>
>>
>> add_header X-DEBUG $xdbg;
>>
>> location /one {
>> set $dbg_location L1;
>> }
>>
>> location /two {
>> set $dbg_location L2;
>> }
>>
>> location /three {
>> set $dbg_location L3;
>> }
>>
>>
>> --
>> Валентин Бартенев
>>
>> _______________________________________________
>> nginx-ru mailing list
>> nginx-ru на nginx.org
>> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>>
>
>
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20160126/a74aba95/attachment.html>
Подробная информация о списке рассылки nginx-ru