Re: настройка редиректора

Sergey Shepelev temotor at gmail.com
Wed Nov 19 19:02:46 MSK 2008


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

2008/11/19 Igor Sysoev <is at rambler-co.ru>

> 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/><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
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20081119/3d679e56/attachment.html>


More information about the nginx-ru mailing list