Ребяты, нужна хелпа.
В nginx стоит защита limit_req_zone по установленному языку в браузере $http_accept_language
Вот пример
map $http_accept_language $locale_bad_country {
default "";
"~^zh" "1";
"~^en" "1";
}
limit_req_zone $locale_bad_country zone=external:10m rate=1000r/m;
limit_req zone=external burst=1000 delay=500;
Все прекрасно работает и так как надо, проблема в том что фильтруется и google bot у которого айпишники 66.249.70.0/24
Реально ли игнорить правила для гугл бота?
Как я понимаю нужно создать еще один map для переопределения locale_bad_country уже на основе IP адреса клиента? Я просто не знаю будет ли это работать и как правильно...
Сугубо по моей логике хочется сделать так
map $http_accept_language $locale_bad_country {
default "";
"~^zh" "1";
"~^en" "1";
}
map $binary_remote_addr $locale_bad_country {
default "";
"66.249.70.*" "";
}
Но
1. Возможно ли переопределение переменной таким образом я не знаю
2. По логике так как во втором map default "", то первый map вообще работать не будет (по факту)
В общем моя логика как всегда не работает и быть может кто нибудь подскажет как осуществить задуманное и возможно ли это вообще?
Или делать уже как то так?
map $http_accept_language:$binary_remote_addr $locale_bad_country {
default "";
"~^zh:*" "1";
"~^en:*" "1";
"~^en:66.249.70.*" "";
}