limit_req_zone и limit_req, как в этом примере:JSX
limit_req_zone $binary_remote_addr zone=mylimit:10m rate=10r/s;
server {
location /login/ {
limit_req zone=mylimit;
proxy_pass http://my_upstream;
}
} limit_req_zone определяет параметры ограничения скорости, в то время как limit_req включает ограничение скорости для конкретного ресурса, в примере для всех запросов к /login/. Обычно limit_req_zone определяется в блоке http, чтобы была возможность её переиспользовать для разных ресурсов. $binary_remote_addr, которая содержит двоичное представление IP-адреса клиента.zone=,limit_req_status. По умолчанию NGINX вернёт 503 ошибку. Если хотите её поменять (например, на 444), добавьте следующую строчку в конфигурацию limit_req_status 444;.JSX
limit_req_zone $binary_remote_addr zone=mylimit:10m rate=10r/s;
server {
location /login/ {
limit_req zone=mylimit;
limit_req_status 444;
proxy_pass http://my_upstream;
}
} limit_req. Этот модуль позволяет ограничивать количество запросов на основе определённых ключей, таких как IP-адреса. Например, можно настроить лимиты на 10 запросов в секунду с использованием директивы limit_req_zone. Это эффективно управляет трафиком и улучшает стабильность работы веб-сервера.