Re: limit_req_zone, переменный rate

Kirill A. Korinskiy catap+nginx на catap.ru
Пт Мар 12 20:15:36 MSK 2010


At Fri, 12 Mar 2010 19:27:41 +0300,
Maxim Dounin <mdounin at mdounin.ru> wrote:
> 
> Она, на самом деле, хорошая, годная.  И error_page 404 - на самом 
> деле лучше, чем тот же try_files, ибо не имеет race'ов.
> 

try_files это отдельная и сильно больная для меня песня. Внятного объяснения зачем я все
еще не смог для себя вынести.

> Но не будем разводить ещё и этот флейм. :)
> 

Мы с тобой давно тут не флеймили (да и пиво не пили), в прошлый флеймовый сезон я был в
своих разгулах, так что, как говориться, try_files ты первый вспомнил!

> > Защищаться от циклов глупо. Сделал человек цикл, значит сам дурак или ты можешь показать
> > пример как сделать неявный цикл?
> 
> Защищаться от циклов - насущная необходимость, чтобы кривым 
> конфигом нельзя было угробить сервер.
> 

а давно дали в руки пользователей возможность писать конфиги? Т.е. либо пользователь
грубит свой личный сревер, либо у вас бага в генераторе конфигов.

> А "неявный" - это кому как.  Я вот этот патчик не на пустом месте 
> рисовал, а потому что ко мне пришли разбираться:
> 
> http://nginx.org/pipermail/nginx-devel/2010-January/000099.html
> 
> Понятно, что человек указавший несуществующий именованный location 
> - сам себе злобный буратино.  Но приличный сервер не должен из-за 
> этого кушать 100% cpu и переставать обрабатывать запросы, он 
> ругаться должен.
> 

ага, помню.

Я все-таки придерживаюсь позици Игоря тут: лучше выполнять то что хочет пользователь, а
если он носастый, ну значит сам такой.

> > Вот последние две вещи, лично мне, удобны. Т.е. когда надо чистить я делаю return +
> > error_page, когда не надо чистить rewrite.
> 
> Внутренние редиректы - чистят, переходы в именованные location'ы - 
> не чистят.  От метода вызова это не зависит.
> 
> И уже есть модули где это выходит боком.  Ибо они подбирают старый 
> контекст и пытаются с ним работать, впадая в бесконечный цикл.  
> Понятно что это в первую очередь проблема данных модулей, но 
> нифига не понятно интуитивно.
> 

Давай честно, nginx нифига не понятен интуитивно. Какие-то общие вещи, да, вполне. В
деталях же творить полная вакханалия и равзрат.

> Тем более что семантика у переходов в named location'ы совсем даже 
> не предполагает отличий в этом месте.  С другой стороны, чистить 
> нельзя - ибо, как я уже писал, server rewrite phase по очевидным 
> причинам не выполняется, и контексты поставленные там нужно 
> сохранять.
> 

Не знаю, слишком тонкий момент. Вообще момент с internal redirect очень тонкий. Но раз
есть двоякость, то увы.

-- 
wbr, Kirill



Подробная информация о списке рассылки nginx-ru