19 Nov 17:02
Re: настройка редиректора
From: Sergey Shepelev <temotor@...>
Subject: Re: настройка редиректора
Newsgroups: gmane.comp.web.nginx.russian
Date: 2008-11-19 16:02:46 GMT
Subject: Re: настройка редиректора
Newsgroups: gmane.comp.web.nginx.russian
Date: 2008-11-19 16:02:46 GMT
Большое спасибо.
2008/11/19 Igor Sysoev <is <at> rambler-co.ru>
Спасибо. Кстати, разница между
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 зап/сек соответственно.
Это тоже стояло.
On Wed, Nov 19, 2008 at 01:40:15PM +0300, Sergey Shepelev wrote:0.7 в этом плане не особо отличается от 0.5.
> Компания - регистратор доменов предоставляет услугу HTTP redirect с
> юзерского домена на какой угодно адрес.
> Эту услугу обслуживает nginx на одном адресе, на одной машине.
>
> Клиентов часто ДДоСят, поэтому редиректор тоже под большой нагрузкой из-за
> этого.
>
> Доменов, с которых надо редиректить, примерно 500, это число будет расти, но
> достаточно медленно.
>
> Задача nginx - максимально быстро вернуть редирект и принудительно закрыть
> соединение.
>
> Есть ли аргументы в пользу "нестабильного" 0.7, например, он быстрее ищет
> сервер в списке виртхостов?
> http://домен/<http://xn--d1acufc/>,
> Работающий nginx 0.5 давно настраивал плохо разбирающийся в nginx человек,
> поэтому присылать текущий конфиг смысла не вижу.
>
> Значительного увеличения производительности удалось достигнуть за счет
>
> listen (ip):80 *default rcvbuf=2K backlog=128*;
>
> можно ли здесь еще что-нибудь улучшить?
>
> Учитывая, что практически все легальные запросы живых юзеров -
> будет ли смысл писать конфиг виртхоста, какДа, так будет немного лучше. Я предпочитаю такой вариант:
>
> 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 зап/сек соответственно.
reset_timedout_connection on;
> Может быть, можно подкрутить *_buffer_size, *_timeout? Посоветуете?
> Может нужно отключить посыл каких-то заголовков?
>
> **keepalive_timeout стоит 0.
Это тоже стояло.
--
> "Производительность" тестировалась c помощью ab -c 1000 -n 50000
> http://vhost/
> сейчас это 9к запросов/сек, но я чувствую, что можно больше.
Игорь Сысоев
http://sysoev.ru
RSS Feed