Ограничение соединений с backend

Андрей Василишин andron at kpi.ua
Mon Jun 15 15:39:02 MSD 2009


Vladimir Latyshev пишет:
> пруфлинк пожалуйста
> из того, что я вижу в своих тестах, это не так
> и в документации нет подобной мысли про директиву limit_conn
>
> 15 июня 2009 г. 14:07 пользователь Alex Vorona <voron at amhost.net 
> <mailto:voron at amhost.net>> написал:
>
>     15.06.2009 12:54, Vladimir Latyshev wrote:
>
>            limit_conn указывать только в location с proxy_pass
>         http://apache;
>
>         именно там оно и указывается, только что по сути это меняет?
>         проблема в том, что 100 медленных клиентов будут тянуть ответы
>         от апача, в то время как соединения с ним уже освободились, но
>         данная шайба не даст установить новые, пока ответ не будет
>         полностью отдан клиенту
>
>     Нет, limit_conn в location с proxy_pass http://apache; будет
>     ограничивать только количество коннектов между nginx и apache, а
>     не между nginx и клиентами. Медленный клиент или быстрый - apache
>     всё равно отдаёт результат запроса быстрому nginx'у.
>
>

Использую
       location ~ getfile.php$ {
            limit_conn one  5;
            set $limit_rate  3m;
            proxy_pass http://127.0.0.1:8080;
      }
     
  location /files/ {
            internal;
            root /storage/htdocs;
        }
 location /503.html {
            root  /storage/htdocs;
        }

 В результате клиенты ломятся своими качальщиками на getfile.php, каждый 
в в сколько позволяет совесть потоков, из них только 5 канают, далее 
скрипт getfile.php отдает по X-Accel-Redirect прямой линк на файл, 
который находится в директории /storage/htdocs/files/. Таким образом 
качается файл максимум в 5 потоков суммарной скоростью 3Мб все остальные 
конекты с этого же айпи получают 503, апач не нагружен.

-- 
WBR, Andrey Vasilishin CDIG1-UANIC, CDIG1-RIPE






More information about the nginx-ru mailing list