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