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

Alexey V. Karagodov kav at karagodov.name
Thu Nov 20 00:48:02 MSK 2008


если у вас тупо рерайт сразу идёт, то  
директива location {} не нужна

server {
   listen 80 default accept_filter=httpready rcvbuf=128k sndbuf=128k  
backlog=4096; #default и прочие параметры нужно  
указать *только* один раз, поведение  
сохранится для всех серверов,  
слушающих указанную пару адрес/порт
#по поводу размеров rcvbuf и sndbuf лучше  
дополнительно проконсультироваться. в  
вашей ситуации имеет смысл делать их  
не более 8к или что-то вроде, т.к. вы  
картинко/контенто не раздаёте
   server_name requested_domain.tld;
   rewrite ^ http://target_domain.tld$request_uri;
}

всё

так-же, по-гуглите и тут в рассылке  
было, nginx обслуживающий одновременно 200  
000 коннектов


On 19.11.2008, at 19:02, Sergey Shepelev wrote:

> Большое спасибо.
>
> 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
>>
>>



More information about the nginx-ru mailing list