очень много клиентов
Igor Sysoev
is at rambler-co.ru
Tue Feb 14 21:02:43 MSK 2006
On Tue, 14 Feb 2006, Anton Maksimenkov wrote:
> С одним из сильно посещаемых сайтов при попытке перевести его с
> apache на nginx происходит сильное падение трафика (обслуживания),
> почти в 2 раза.
>
> Схема такова: бакэндовый апач отдаёт статические в основном
> странички, используется mod_layout; и прокси отдает всё это наружу.
>
> На бакэнде применены фичи:
> ---------------------------------------------------------------------
> # отключаем неплательщиков
> RewriteEngine On
> RewriteMap block-domain-ru txt:/var/www/block.domain.ru
> RewriteRule ^(/([^/]+)/.*)$ ${block-domain-ru:$2|$1}
>
> # ограничиваем любителей поделиться трафиком картинок
> 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]
>
> # батва
> RewriteCond %{HTTP_REFERER} ^http://[^/]*[\%[:space:]][^/]*$ [OR]
> RewriteCond %{HTTP_REFERER} ^http://[^/]*[\%[:space:]][^/]*/.*$
> RewriteRule ^.* - [F,L]
> ---------------------------------------------------------------------
>
> На прокси всё соответственно проксируется
> ---------------------------------------------------------------------
> Listen X.X.X.X:80
> NameVirtualHost *:80
>
> <VirtualHost *:80>
> ServerName domen.ru
> RewriteEngine On
> RewriteCond %{HTTP_HOST} ^(.+)\.domen\.ru.*$ [NC]
> RewriteRule (.*) http://hosting.domen.ru.int/%1$1 [L,P]
> RewriteRule .* http://domen.ru
> </VirtualHost>
> ---------------------------------------------------------------------
>
> При попытке завернуть также, но используя nginx как прокси с конфигом
> примерно таким
> ---------------------------------------------------------------------
> user www www;
> worker_processes 8;
> events {
> worker_connections 4096;
> }
> output_buffers 8192 128k;
> userid on;
> userid_name Apache;
>
> server_names_hash_max_size 2048;
> server_names_hash_bucket_size 256;
>
> log_format accounting '$remote_addr $body_bytes_sent $http_host [$time_local] '
> '"$http_cookie" "$http_referer" "$request"';
>
>
> server {
> listen X.X.X.X:80 default backlog=2048;
> server_name www.domen.ru *.domen.ru;
> proxy_buffering on;
> proxy_buffers 2048 128k;
> set $host_part "";
> location / {
> if ($http_host ~* "^(.+)\.domen\.ru.*$") {
> set $host_part $1;
> }
> rewrite ^(.*)$ /$host_part/$1 break;
> proxy_pass http://127.0.1.6;
> }
> access_log /var/www/logs/access.log accounting buffer=32k;
> }
> ---------------------------------------------------------------------
>
> получаем потерю объёмов трафика раза в 1.5 - 2. И в логах примерно в
> 1.5 - 2 раза меньше "записей в минуту", чем при использовании апача.
> Примерно с 5500 записей в минуту до 3500 падает.
> Серфить вроде бы получается, есть мнение, что падает интенсивность
> обслуживания (а может где-то и отказ получается, но в error.log очень
> тихо, несколько раз в час о силы ругается). На страничках, где много
> картинок, эти самые картинки отдаются с несколько большими задержками
> (с апачем они прямо кучно так все появляются, а c nginx сначала штук
> 5, а потом остальные 15 с задержками).
>
> Также замечается некоторое снижение интенсивности (по server-status)
> на бакэнде, меньше процессов одновременно работает.
>
> Всвязи с чем вопрос. Где ещё покрутить, чтобы добиться от nginx хотя
> бы того же, что выкачивал апач? И почему такое снижение интенсивности?
Какая ОС ? Есть ли в логах что-нибудь про alert|crit ?
Игорь Сысоев
http://sysoev.ru
More information about the nginx-ru
mailing list