ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
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: Андрей <deepmindster@xxxxxxxxx>
  • Date: Thu, 05 Jun 2008 14:00:55 +0400
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from :user-agent:mime-version:to:subject:references:in-reply-to :content-type:content-transfer-encoding; bh=w0g1plM+TBksaSuZKdmIIly+OrJEDuFaaHIHK0QQ51k=; b=f7etMjTeO1+xCzkEEkjAj81ZRDff8V7IR85CkBOiWH/vxZMVZJj1KcqCwJpE+zDoOu fQgu9gbXd0a0pckD4jMIEPWwkyamkmYYQA0bON51FAeYnJqrrRMAM7uC8fMDmGu2XZgh u2GBuvry5kUWrndLqgl6O+0M2IqcVRlg9mRXY=
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:subject:references :in-reply-to:content-type:content-transfer-encoding; b=dFJIXbpGrGrBXa2CcvBuizElQXI3VZ4TPs0TN9oQ8kIhN9e1TUhvAIa34vUXrdHIU2 6YTsWihdB/egG0coiNzV/uVALgO/RkF5o0emJS562lP3xeg7fBjt+oONVTSp+KRmof/y v1qq4WtRumTTQVmDmLIR1ccPQkpBdnDx63Evs=
  • In-reply-to: <442602363.20080605110638@xxxxxxxxx>
  • References: <48471C58.3000908@xxxxxxxxx> <442602363.20080605110638@xxxxxxxxx>

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/

угу, это есть

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




 




Copyright © Lexa Software, 1996-2009.