Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: limit_req - feature request?
On 19.06.2010 23:36, vgoncharov wrote:
Я говорю о том, что НЕИЗВЕСТНО какие
location в каких серверах надо тормозить,
а какие не надо. Но я точно знаю, что надо
ограничиваь скорость к .php. Изучать 100
серверов можно. Но проще отказаться от
фичи ограничения скорости.
но ведь limit_req для .php можно прописать
внутри блока location ~ \.php$ { ... } ?
Важно понимать, что сегодня
прописывание limit_req в location "/" в общем
случае - бестолковое занятие. Тк есть и
картинки и стили и js и прочая лабудень.
Юзер кликнул, а на сервер сотня
запросов, а ленко и больше.
если статика отдается с более конкретных location,
и в location / попадают только запросы к backend`у,
то такая схема работает практически идеально.
Поэтому надо отделять запросы скорость
к которым надо ограничивать (скрипты)
от запросов к которым НЕ надо
ограничивать скорость (статика). Сейчас
это можно сделать только описываем
разных location'ов для статики и для
динамики.
разумеется, если разным location`ам
нужна разная обработка, это надо явно
описать в конфиге, а как же иначе-то?
В этом и проблема. Сейчас нужно
индивидуально настраевать каждый
сервер бакенда. Скриптом определить в
каком location там статика, а в каком
динамика - НЕВОЗМОЖНО. Поэтому
невозможно сгенерировать нужный
конфиг.
Но по $uri это можно сделать в
большинстве случаев. Да, не во всех. *.gif
МОЖЕТ оказаться динамикой, но .php
статикой уж врядли будет являтся. При
этом в .gif автоматические искатели
уязвимостей врядли смогут заподозрить
скрипт, в отличии от *php.
Я все равно плохо объяснил?
пока что не ясно почему location ~ не подходит.
Своими словами:
location / {
ограничить_скорость_запросов_к_$uri=~/\.php/_до_1r/s
nodelay burst=3
}
location ~ \.php$ {
limit_req zone=one burst=3 nodelay;
proxy_pass ...;
}
location ~* \.(gif|jpg|jpeg)$ {
root /srv/site/example.com/htdocs;
expires 24h;
}
--
Best regards,
Gena
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru
|