🌐 Ограничение скорости определенных URL-адресов с Nginx |

🌐 Ограничение скорости определенных URL-адресов с Nginx

Мануал

Зачем нужно ограничение скорости?

Ограничение скорости – это простой способ остановить пользователей (надеюсь, только плохих!) от доступа к большему количеству ресурсов вашего сайта, чем вам хотелось бы.

Как написано на оф. сайте Nginx:

Модуль ngx_http_limit_req_module (0.7.21) позволяет ограничить скорость обработки запросов по заданному ключу или, как частный случай, скорость обработки запросов, поступающих с одного IP-адреса. Ограничение обеспечивается с помощью метода “leaky bucket”.

Далее показан простой способ ограничения скорости доступа к определенным URL с помощью Nginx.

Как добавить ограничение скорости в nginx

В верхней части файла nginx вы можете определить параметры следующим образом:

limit_req_zone $binary_remote_addr_map zone=mylimit:10m rate=5r/s;
limit_req_status 429;

map $request_uri $binary_remote_addr_map {
    default "";
    ~^/what-is-new.html $binary_remote_addr;
    ~^/another-url-to-rate-limit.html $binary_remote_addr;
}

Затем в блоке location добавьте:

limit_req zone=mylimit;
Теперь ограничение скорости будет применяться только к веб-страницам, соответствующим $request_uri.
Это удобно, когда все ваши запросы направляются через один эндпойт, но вы хотите ограничить скорость только определенных страниц на вашем сайте.
см. также:

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий