Течет память при проксировании

Denis F. Latypoff latypoff на yandex.ru
Сб Май 26 15:44:55 UTC 2012


Приветствую.   Пробовал   1.2.0   и   1.3.0,   вот  на  таком  трафике
http://s12.postimage.org/64ix4e8vf/localhost_nginx_request_week.png
процессы  растут  с  70мб  до  1гб  (RSS)  за  сутки.  Трафик  генерит
самописный  клиент  с  другого  сервера. Keepalive'а нет. Nginx только
проксирует,  бекенд  отдает  очень  короткий  ответ  (байт  200-300  с
заголовками). Этот клиент обязательно дожидается ответа, только потом
закрывает соединение сам. Конфиг такой:

user                    nobody nobody;
worker_processes        2;
worker_rlimit_nofile    1000000;
worker_rlimit_core      100M;
working_directory       /tmp;
error_log               logs/error.log  warn;

events {
    worker_connections  32768;
    accept_mutex        off;
}

http {

    include                     mime.types;
    default_type                application/octet-stream;
    sendfile                    on;
    tcp_nopush                  on;
    reset_timedout_connection   on;
    log_not_found               off;
    server_tokens               off;
    server_name_in_redirect     off;
    recursive_error_pages       on;

    proxy_ignore_client_abort   on;
    proxy_intercept_errors      on;
    proxy_connect_timeout       600;
    proxy_read_timeout          600;
    proxy_send_timeout          600;
    send_timeout                600;
    client_header_timeout       600;
    keepalive_timeout           75 20;

    gzip                on;
    gzip_proxied        any;
    gzip_min_length     0;
    gzip_types          text/css
                        text/xml
                        text/plain
                        text/javascript
                        image/x-ms-bmp
                        application/xml
                        application/x-javascript;

    geoip_city     /usr/share/GeoIP/GeoIPCity.dat   utf8;
    geoip_org      /usr/share/GeoIP/GeoIPASNum.dat  utf8;

    upstream upstream_counter {
        server    127.0.0.1:8090;
    }

    server {

    listen      80;
    server_name NAME;

    access_log  off;
    error_log   logs/error.log warn;
    root        /root;
    charset     utf-8;

    location = /i/1x1.gif {
        empty_gif;
    }

    location = /0.gif {
        limit_except            GET { deny all; }
        set_real_ip_from        XXX;
        error_page              502 =200 /i/1x1.gif;
        error_page              503 =200 /i/1x1.gif;
        error_page              504 =200 /i/1x1.gif;
        error_page              404 =200 /i/1x1.gif;
        proxy_pass              http://upstream_counter;
        proxy_set_header        Host               $host;
        proxy_set_header        X-Real-IP          $remote_addr;
        proxy_set_header        GeoIP-Country-Code $geoip_city_country_code;
        proxy_set_header        GeoIP-Region-Name  $geoip_region_name;
        proxy_set_header        GeoIP-City         $geoip_city;
        proxy_set_header        GeoIP-Coords      '$geoip_latitude:$geoip_longitude';
        proxy_set_header        GeoIP-ISP          $geoip_org;
    }

    location / {
        return 444;
    }
}

-- 
br, Denis F. Latypoff.



Подробная информация о списке рассылки nginx-ru