Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: nginx+nginx, убрать блокировку н а диске, конфиг
- To: Андрей <nginx-ru@xxxxxxxxx>
- Subject: Re: nginx+nginx, убрать блокировку н а диске, конфиг
- From: Gena Makhomed <gmm@xxxxxxxxx>
- Date: Thu, 5 Jun 2008 11:06:38 +0300
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=csdoc.com; s=dkim; t=1212653731; bh=kJu7W7RDSKo7x8KeK4ugqLzAQHAln6q/S38zUbTwNgs=; h=Date:From:X-Mailer:X-Priority:Message-ID:To:Subject:In-Reply-To: References:MIME-Version:Content-Type:Content-Transfer-Encoding; b=dR0aryZosoNf3t+jg6jwWhzhkNLZtQcnMbM4Nt27qsUQBCaIBmUS6Vk1VVtbjoUGu g7lMbZNVGIsiO/C+llGLVEcahLclT9iYtFVuyAzNDboruBxykbkAEet0ol09V2JRt+V cT02U07QfBBUrY3URTReuWCkL3EdLn9cQtloR3c=
- In-reply-to: <48471C58.3000908@xxxxxxxxx>
- References: <48471C58.3000908@xxxxxxxxx>
On Thursday, June 5, 2008 at 1:51:04, Андрей wrote:
А> Собственно, хотелось убрать блокировку на диске.
стандартный способ - запустить очень много воркеров
в надежде, что некоторая часть их не будет заблокирована
на диске и сможет проксировать запросы к backend`у для динамики.
(например, сотню или около того)
если это один высоконагруженный сайт и есть только одна машина -
я бы наверное все-таки пробовал делать через независимые 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/
--
Best regards,
Gena
|