очень много клиентов

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