times_new_nginx/configuration/limit_req_zones.conf

32 lines
2.1 KiB
Plaintext
Raw Normal View History

2024-10-16 15:29:35 +03:00
# Описание зон ограничения количества запросов
#Используем переменную NGINX $binary_remote_addr, которая содержит двоичное представление IP-адреса клиента.
#Это означает, что мы ограничиваем каждый уникальный IP-адрес частотой запросов, определенной третьим параметром rate.
#(Используем эту переменную, потому что она занимает меньше места, чем строковое представление IP-адреса клиента, $remote_addr).
#Информация о состоянии примерно для 16 000 IP-адресов занимает 1МБайт,
#поэтому созданная зона может хранить около 160 000 адресов.
#Тут частота не может превышать 10 запросов в секунду 10 request/second.
#NGINX фактически отслеживает запросы с точностью до миллисекунды,
#поэтому этот предел соответствует 1 запросу каждые 100 миллисекунд (мс).
#Запрос отклоняется, если он поступает менее чем через 100 мс после предыдущего разрешенного.
2024-10-16 15:52:59 +03:00
#Пример
#limit_req_zone $binary_remote_addr zone=global_limits:10m rate=10r/s;
2024-10-16 15:29:35 +03:00
#Директива limit_req_zone задает параметры ограничения скорости и зоны общей памяти,
#но на самом деле не ограничивает скорость запросов. Для этого нужно применить ограничение
#к определенному блоку location или server, включив туда директиву limit_req.
#Например
# server {
# location /login/ {
# limit_req zone=mylimit;
# proxy_pass http://my_upstream;
# }
2024-10-16 15:52:59 +03:00
# }
limit_req_zone $binary_remote_addr zone=global_limits:10m rate=20r/s;