1 1 1 1 1 Rating 0.00 (0 Votes)
Очень краткая заметка с примером как можно ограничить скорость обработки запросов от IP адресов, но исключив при этом роботов с определённым "юзер агентом".

# 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;​