Пример конфигурации ограничения скорости обработки запросов в nginx с исключениями

Очень краткая заметка с примером как можно ограничить скорость обработки запросов от IP адресов, но исключив при этом роботов с определённым “юзер агентом”. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 # ref: https://gist.github.com/supairish/2951524 # IP адреса в белом списке - для них не будет применяться лимитирование geo $geo_whitelist { default 0; 1.2.3.4 1; 2.3.4.5/24 1; } # Юзер агенты в белом списке - для них не будет применяться лимитирование map $http_user_agent $whitelist { default $geo_whitelist; ~*(google) 1; } # Если в белом списке 0, то помещаем "binary IP address" в $limit для применения к ним ограничений map $whitelist $limit { 0 $binary_remote_addr; 1 ""; } limit_req_zone $limit zone=perip:30m rate=1r/s;​

25 вересня 2019 · 1 хвилина · 124 слів · dimetrius