поведай истину плс
на сайте есть рест который дергает другой сервак, и он выполняет огромное количество запросов, но я никак не могу понять, почему игнорируется $limit
поставил 444,
но в статье на хабре, которую вы указали ничего по своей проблеме я так и не нашел,
я до сих пор не понимаю, почему не работает whitelist,
и должен ли он работать?
как это можно дебажить?
можете плс посоветовать, что нужно делать чтобы добавить в whitelist ip в качестве исключения для req_limit
Задаёт зону разделяемой памяти (zone) и максимальный размер всплеска запросов (burst). Если скорость поступления запросов превышает описанную в зоне, то их обработка задерживается так, чтобы запросы обрабатывались с заданной скоростью. Избыточные запросы задерживаются до тех пор, пока их число не превысит максимальный размер всплеска. При превышении запрос завершается с ошибкой 444
позволяют в среднем не более 1000 запросов в минуту со всплесками не более 2000 запросов.
...
ну, лишь частично понимаю---------- Добавлено 26.01.2017 в 07:08 ----------до этого я ставил вот так
http {
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
server {
location /search/ {
limit_req zone=one burst=5;
}
как здесь http://nginx.org/ru/docs/http/ngx_http_limit_req_module.html---------- Добавлено 26.01.2017 в 07:12 ----------Скорость задаётся в запросах в секунду (r/s). Если же нужна скорость меньше одного запроса в секунду, то она задаётся в запросах в минуту (r/m), например, ползапроса в секунду — это 30r/m.
хотя я использовал это немного по другому
сайт на https
#####################
#внутри http nginx.conf
#..
geo $whitelist {
default 0;
10.1.0.0/16 1;
127.0.0.0/8 1;
192.168.0.0/16 1;
127.0.0.1 1;
193.190.222.101 1; # к примеру, это ip другого сервака, которому не нужно ограничивать кол-во реквестов. но...
map $whitelist $limit {
0 $binary_remote_addr;
1 "";
limit_req_zone $limit zone=one:100m rate=1000r/m;
#...
sites-available/123.conf
#####################################
#внутри сервера
#....
location ~* \.(html)$ {
limit_req zone=one burst=2000 nodelay;
> но ..
limiting requests, excess: 200.200 by zone "one", client: 193.190.222.101, server: qwe3a1.cc request: "GET /asd/321 HTTP/1.1", host: "qwe3a1.cc", referrer: "https://qwe3a1.cc/list/123"
сделал как у вас, но почему то адреса которые я прописал таки попадают под лимит