Welcome! Log In Create A New Profile

Advanced

Re: map vs if

January 26, 2016 12:10PM
А мне вот знакомый предложил такой вариант

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
>>
>
>
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

map vs if

ALex_hha January 26, 2016 08:32AM

Re: map vs if

Валентин Бартенев January 26, 2016 09:28AM

Re: map vs if

ALex_hha January 26, 2016 11:00AM

Re: map vs if

Валентин Бартенев January 26, 2016 11:36AM

Re: map vs if

ALex_hha January 26, 2016 11:40AM

Re: map vs if

ALex_hha January 26, 2016 12:10PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 158
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 500 on July 15, 2024
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready