> tcp_nodelay on;
> limit_req_zone $binary_remote_addr zone=avi:10m rate=5r/m;
> ....
> location ~* ^/film/.*\.(avi|mpg|gif|jpg)$ {
> limit_req zone=avi burst=5;
> ....
Для того чтобы был limit_req ... nodealy - должно быть написано
limit_req ... nodelay. А не просто limit_req. Логично?
Мда, спасибо. :) надо еще раз прочитать матчасть и выучить все настройки где есть слово nodelay. :)
[...]
> 2009/07/06 13:43:01 [debug] 62060#0: *117 free: 0829E200, unused: 56
> 2009/07/06 13:43:14 [error] 62100#0: *117 limiting connections by zone
> "one", client: 95.32.50.65, server:
film.arjlover.net, request: "GET
> /film/vyzyvaem.ogon.na.sebja.2.avi HTTP/1.0", host: "
ivanka.arjlover.net",
> referrer: "
http://film.arjlover.net/film/"
>
> Последняя строчка непонятно как попала в этот grep по 117
> Все строчки про limit_req - убраны.
Последняя строчка - это limit_conn. В целом нормальный такой
range запрос, отработал штатно, вернул в точности то что
запросили.
access.log:
220.231.30.195 - - [06/Jul/2009:13:42:56 +0400] GET /film/zerkalo.avi HTTP/1.1 XX 206 92546
Вот это запросили? 92645 байтов? Как это возможно? Разрешен один поток, если бы это был последний кусок - было бы http 200, если он не последний, то... Даже не знаю, теоретически можно кончено делать такие запросы, но смысл? И какие качалки могут так делать? Как-то не верится, учитывая, что случается по прежнему 50 раз в минуту...
Недолго я радовался что все хорошо работает без limit_req - мне быстро напомнили зачем я это сделал, в целом все хорошо, но отдельные товарищи любят делать вот так:
193.232.126.36 - - [06/Jul/2009:16:33:39 +0400] GET /film/pyatyi.okean.avi HTTP/1.1 ZZ 206 1485423
193.232.126.36 - - [06/Jul/2009:16:33:43 +0400] GET /film/pyatyi.okean.avi HTTP/1.1 ZZ 206 2908171
193.232.126.36 - - [06/Jul/2009:16:33:46 +0400] GET /film/pyatyi.okean.avi HTTP/1.1 ZZ 206 1487151
193.232.126.36 - - [06/Jul/2009:16:33:46 +0400] GET /film/pyatyi.okean.avi HTTP/1.1 ZZ 206 776981
193.232.126.36 - - [06/Jul/2009:16:33:48 +0400] GET /film/pyatyi.okean.avi HTTP/1.1 ZZ 206 422760
193.232.126.36 - - [06/Jul/2009:16:33:48 +0400] GET /film/pyatyi.okean.avi HTTP/1.1 ZZ 206 782785
Тоже не очень понимаю как это у них получается и зачем, но достает. :( Кстати неплохо заливает за одну секунду, еще бы без обрывов - цены б ему не было. :)
Без nodelay играть с сотнями качалок в перестрелку 503 - не хочется, хочу держать коннект, мне кажется nginx это делает легко и красиво.
Но насколько я понимаю - без патча это толком не работает?
Ни в 7 ни 8 версии патча нет?
Кстати, а можно как-то все коннекты что сверх лимита по коннектам тоже на удержание вешать? На этом фронте тоже идет перестрелка 503. :( Все что я смог сейчас сделать - повесить скорость 1b/s на 503.html - хоть как-то сдерживает это безумие, но хочется более красиво. И чтобы работало без патча. :)
Заморочка с пропатчиванием дюжины серверов и поддержанием патча в дальнейшем - как-то убивает весь энтузиазм. :(