ПРОЕКТЫ 


  АРХИВ 


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: настройка редиректора


  • To: nginx-ru@xxxxxxxxx
  • Subject: Re: настройка редиректора
  • From: "Sergey Shepelev" <temotor@xxxxxxxxx>
  • Date: Wed, 19 Nov 2008 19:02:46 +0300
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:in-reply-to:mime-version:content-type:references; bh=YDxEC4hBOKugAsl1dM90HnjOIKSYunlYmdjecZ/BG40=; b=C9o8wLWPLseOEuilQyoD9bTRmVIreQx+CiOUKmGaemvFenCOtiRR4Op6+a4c9YUSMF dzHQ3AdMg0bpzHQYH7yFOguWKs6PaKoXFg1sD7bUHEagWNib3lqhW/Jw/CJ7E92q0qpT zknrzlPhyxujrbYaQflLjt6L5yF/JXpdoBhw4=
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:in-reply-to:mime-version :content-type:references; b=UwKeVHa4/Vx6QwZC7J0VK5BMHgKYhN73ObNhRP8ssZQSPaBUjVOqdkGskDq7VvBBEq +Q8+Q0odJT600p1EgAFPoeCMsbHcebFSrttY05EAjgs+3vO5d29o0UklUR3YGFN8cI5p QYDPVgncF02mLfpxii7SM8CK6wPJVncYswP28=
  • In-reply-to: <20081119130401.GF42162@xxxxxxxxxxxxx>
  • References: <2d8fb9950811190240i51cc389g31e3033c81aad878@xxxxxxxxxxxxxx> <20081119130401.GF42162@xxxxxxxxxxxxx>

Большое спасибо.

2008/11/19 Igor Sysoev <is@xxxxxxxxxxxxx>
On Wed, Nov 19, 2008 at 01:40:15PM +0300, Sergey Shepelev wrote:

> Компания - регистратор доменов предоставляет услугу HTTP redirect с
> юзерского домена на какой угодно адрес.
> Эту услугу обслуживает nginx на одном адресе, на одной машине.
>
> Клиентов часто ДДоСят, поэтому редиректор тоже под большой нагрузкой из-за
> этого.
>
> Доменов, с которых надо редиректить, примерно 500, это число будет расти, но
> достаточно медленно.
>
> Задача nginx - максимально быстро вернуть редирект и принудительно закрыть
> соединение.
>
> Есть ли аргументы в пользу "нестабильного" 0.7, например, он быстрее ищет
> сервер в списке виртхостов?

0.7 в этом плане не особо отличается от 0.5.

> Работающий nginx 0.5 давно настраивал плохо разбирающийся в nginx человек,
> поэтому присылать текущий конфиг смысла не вижу.
>
> Значительного увеличения производительности удалось достигнуть за счет
>
>      listen (ip):80 *default rcvbuf=2K backlog=128*;
>
> можно ли здесь еще что-нибудь улучшить?
>
> Учитывая, что практически все легальные запросы живых юзеров -
> http://домен/<http://xn--d1acufc/>,
> будет ли смысл писать конфиг виртхоста, как
>
> server {
>   listen (ip):80;
>   server_name vhost;
> *  location = / { rewrite .* http://redirect.to/; }
> *  location / { rewrite (.*) http://redirect.to/$1; }
> }

Да, так будет немного лучше. Я предпочитаю такой вариант:

-  location = / { rewrite .* http://redirect.to/; }
+  location = / { rewrite ^  http://redirect.to/; }

но не знаю, насколько "^" отличается от ".*" по производительности.
Возможно, они компилируются в одно и то же .

Спасибо. Кстати, разница между
1) один server, 400 if ( $host ~ vhost ) { redirect .* http://redirect.addr/ redirect; }
# да, я знаю что это плохо, но так было раньше, будет исправлено
и
2) много директив server, в каждой location = / { rewrite ^ http://redirect.to/; } location / { rewrite (.*) http://redirect.to/$1; }
ровно в два раза: 4500 и 9000 зап/сек соответственно.
 

> Может быть, можно подкрутить *_buffer_size, *_timeout? Посоветуете?
> Может нужно отключить посыл каких-то заголовков?
>
> **keepalive_timeout стоит 0.

reset_timedout_connection  on;

Это тоже стояло.
 

> "Производительность" тестировалась c помощью ab -c 1000 -n 50000
> http://vhost/
> сейчас это 9к запросов/сек, но я чувствую, что можно больше.


--
Игорь Сысоев
http://sysoev.ru




 




Copyright © Lexa Software, 1996-2009.