limit_req - feature request?

Gena Makhomed gmm на csdoc.com
Вс Июн 20 03:40:55 MSD 2010


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