nginx+nginx, убрать блокировку на диске, конфиг

Андрей deepmindster at gmail.com
Thu Jun 5 14:00:55 MSD 2008


Gena Makhomed пишет:
> On Thursday, June 5, 2008 at 1:51:04, Андрей wrote:
>
> А> Собственно, хотелось убрать блокировку на диске.
>
> стандартный способ - запустить очень много воркеров
> в надежде, что некоторая часть их не будет заблокирована
> на диске и сможет проксировать запросы к backend`у для динамики.
> (например, сотню или около того)
>   
По скромному опыту - обычно воркеры всё равно "кончаются", даже если их 
256 к примеру.
> если это один высоконагруженный сайт и есть только одна машина -
> я бы наверное все-таки пробовал делать через независимые nginx`ы
> на разных ip. staticXY.example.com - один nginx отдает статику,
> example.com - другой nginx отдает динамику.
> будет максимальная экономия ресурсов.
>
> А> Для этого, как здесь и предлагалось несколько раз, установил связку nginx+nginx.
>
> обсуждалось как возможный вариант.
>
> А> Настройки примерно такие - отключил сендфайл
>
> чем это плохо на backend`е раздающем только статику?
> ведь содержимое файла будет напрямую попадать в сокет,
> что позволит экономить системные ресурсы (память, процессор).
>
> http://sysoev.ru/2006.html#08.01.2006
>   
спасибо за замечание и ссылку, сендфайл включил на место.
> А> Кроме того, не совсем ясно что делать с таймаутами
>
> время ожидания может быть большим, если запросов к статике много.
> возможно, всего 4 nginx backend`а раздающих статику будет мало,
> наиболее эффективные значения надо будет подбирать опытным путем.
> (зависит от скорости винтов, пропускной способности сети и т.п.)
>
> А> и должно ли быть соединение keepalive между фронтендом и бекэндом?
>
> пока что nginx подключается к backend`у по HTTP 1.0, без keepalive.
>
> и самое главное - nginx backend который раздает статику - всегда будет
> блокироваться на диске, поэтому он должен обрабатывать только запросы
> к статике. а все запросы к динамике через fastcgi надо проксировать
> напрямую из nginx frontend`а, иначе нет смысла ставить два nginx.
>
> proxy_buffering лучше явно выключать только в том server/location
> где проксируюся запросы к nginx backend`у, отдающему только статику.
>
> а динамику лучше буферизировать, особенно, если ответы небольшие.
> и желательно чтобы (почти) все такие ответы помещалась в памяти.
>
> кстати, саму статику лучше отдавать не с основного имени сервера,
> чтобы увеличить скорость загрузки страницы по протоколу HTTP 1.1
> http://webo.in/articles/habrahabr/32-parallel-downloads-optimization/
>
>   
угу, это есть

Спасибо за советы.






More information about the nginx-ru mailing list