Re: Постоянные обрывы коннектов

Anton Kuznetsov maybe at arjlover.net
Mon Jul 6 16:54:41 MSD 2009


> > 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 - хоть как-то
сдерживает это безумие, но хочется более красиво. И чтобы работало без
патча. :)

Заморочка с пропатчиванием дюжины серверов и поддержанием патча в дальнейшем
- как-то убивает весь энтузиазм. :(
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20090706/64db71e1/attachment.html>


More information about the nginx-ru mailing list