ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
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


 




Copyright © Lexa Software, 1996-2009.