Разделить трафик с помощью map и geoip

D
На сайте с 28.06.2008
Offline
1114
731

Хочу для разных тестов попытаться разделить трафик, но не могу придумать конструкцию.

Например это

geoip_country /usr/share/GeoIP/GeoIP.dat;
map $geoip_country_code:$whitelist:$server_protocol $ru-traf {
default 0;
"RU:0:HTTP/2.0" 1;
}

позволит вычленить из всего трафика Ру трафик не из белого списка по протоколу 2,0, а в default попадет все остальное (включая разные протоколы и без учета белого списка.

Мне же нужно отделить RU:0:HTTP/2.0 от "все остальные страны:0:HTTP/2.0"

можно ли как то это совместить?

МОжно использовать $geoip_city_continent_code

Код Имя континента
AF Африка
AN Антарктика
AS Азия
EU Европа
NA Северная Америка
OC Океания
SA Южная Америка

Но к сожалению тогда РУ трафик смешивается с Европой. Возможно все же можно как то отделить страны?

map $geoip_city_continent_code:$whitelist:$server_protocol $ru-traf {
"AF:0:HTTP/2.0" 0;
"AN:0:HTTP/2.0" 0;
"AS:0:HTTP/2.0" 0;
"NA:0:HTTP/2.0" 0;
"OC:0:HTTP/2.0" 0;
"SA:0:HTTP/2.0" 0;
"EU:0:HTTP/2.0" 1;
}
M
На сайте с 17.09.2016
Offline
138
#1

Используйте регулярные выражения и *

D
На сайте с 28.06.2008
Offline
1114
#2

точно, спасибо. В итоге мне нужна регулярка - любое кроме RU, что-то типа != ?

Я вообще регулярки не понимаю, может кто-то подсказать?

map $geoip_country_code:$whitelist:$server_protocol $ru-traf {

"!=RU:0:HTTP/2.0" 1;

"RU:0:HTTP/2.0" 0;

}

M
На сайте с 17.09.2016
Offline
138
#3

не проверял

map $geoip_country_code:$whitelist:$server_protocol $ru-traf {

"~*:0:HTTP/2.0" 1;

"RU:0:HTTP/2.0" 0;

}

D
На сайте с 28.06.2008
Offline
1114
#4

Mobiaaa, спасибо, работает!

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий