Re[5]: очень много клиентов
Igor Sysoev
is at rambler-co.ru
Thu Feb 16 16:17:17 MSK 2006
On Thu, 16 Feb 2006, Anton Maksimenkov wrote:
>> А сколько одновременных Апачей работало до перехода на nginx ?
>> Какой размер ядерного TCP буфера отправки ?
>> Насколько я понимаю, в данном случае появился лишь оверхед от
>> проксирования nginx'ом и больше ничего. Возможно ли отдавать статику
>> nginx'ом без проскирования на Апач ?
>
> На том нагруженном сайте - в среднем работает по 400-600 апачей, >60
> запросов в сек. Размер ядерного буфера... не менял, и к своему стыду
> не знаю. После перехода на nginx появилось существенное снижение
> отжираемой памяти и некоторое снижение нагрузки. Хотя я потом
> задумался, не потому ли, что при том было пропорциональное снижение
> трафика.
>
> Держать апач на бакэнде заставляют следующие функции:
>
> 1) отключение неплательщиков (путём перенаправления на заданную
> страничку), реализовано так
>
> RewriteEngine On
> RewriteMap block-domain-ru txt:/var/www/block.domain.ru
> RewriteRule ^(/([^/]+)/.*)$ ${block-domain-ru:$2|$1}
>
> файлик /var/www/block.domain.ru пополняется записями
> firma74 http://domen.ru/pay.html
> ...
Это можно сделать примерно так:
http {
map $http_host $blocked {
firma74 http://domen.ru/pay.html;
...
}
server {
if ($blocked) {
rewrite ^ $blocked redirect;
}
...
}
> 2) layout'ы, И верхний И нижний, реализовано
>
> LayoutDefaultHandlers Off
> LayoutHandler text/html
> LayoutHandler text/plain
> LayoutHeader /var/www/domen.ru/header.html
> LayoutFooter /var/www/domen.ru/footer.html
>
> критично держать ОБА.
Но для картинок-то они не нужны ?
> 3) Хотя это вероятно УЖЕ можно средствами nginx реализовать -
> ограничить превращение сайта во "внешнее хранилище + внешний трафик"
> картинок для левых сайтов, реализовано простым отсевом тех, кто без
> реферера их тянет
>
> RewriteCond %{HTTP_REFERER} !^http://[0-9a-z][0-9a-z-]*[0-9a-z]\.domain\.ru$ [NC]
> RewriteCond %{HTTP_REFERER} !^http://[0-9a-z][0-9a-z-]*[0-9a-z]\.domain\.ru/.*$ [NC]
> RewriteRule ^.*\.(gif|jpeg|jpg)$ - [F,L,NC]
>
> это вобщем уже не критичный момент, однако были прецеденты, трафик
> фигачил "не по делу", да и нагрузка :-))
http://sysoev.ru/nginx/docs/http/ngx_http_referer_module.html
> 4) Самое основное, почему, даже имея всё это, в апаче была введена
> схема фронтенд-бакэнд, это необходимость упрощенного конфига для
> поддержки сайтов типа *.domen.ru.
> То есть для vasya.domen.ru нужно чтобы DocumentRoot был скажем
> /var/www/domen.ru/vasya, а для ivan.domen.ru DocumentRoot был
> /var/www/domen.ru/ivan
> С апачом это удалось сделать только путем разбора на фронтенде
> HTTP_HOST и передачи имени ПОДДОМЕНА в строке URI бакэнду, реализовано
> на фронтенде так
>
> RewriteCond %{HTTP_HOST} ^(.+)\.domen\.ru.*$ [NC]
> RewriteRule (.*) http://backend.domen.ru.int/%1$1 [L,P]
> RewriteRule .* http://domen.ru
Я правильно понимаю, что сейчас сделано так: - Apache -> backend ?
location / {
set $hostname main;
if ($http_host ~* "^(.+)\.domen\.ru.*$") {
set $hostname $1;
}
rewrite ^(.+)$ /$hostname$1 break;
proxy_pass http://backend.domen.ru.int;
}
Игорь Сысоев
http://sysoev.ru
More information about the nginx-ru
mailing list