ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Странности с proxy buffering и тр ансфером файлов больше 1 ГБ


  • To: nginx-ru@xxxxxxxxx
  • Subject: Странности с proxy buffering и тр ансфером файлов больше 1 ГБ
  • From: "iotf" <nginx-forum@xxxxxxxx>
  • Date: Thu, 29 Sep 2011 04:59:29 -0400
  • Dkim-signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mickey.jlkhosting.com; s=x; h=Date:Sender:From:Message-ID:Content-Transfer-Encoding:Content-Type:Subject:To; bh=T/cdDDhigcMIGKnAKXG7V6WxFBEqh2LRlDBqpwm5YeE=; b=pc9mARztw+zv4CUxTqTAWojIox7QBwletY6m5O1DPnzYAEFlsYfiA2Nw2d0SdnaCFB1Fl6reg2to69pNlXA+xYC6Jeh8yQVzMxQJRxwql2G9PotynDoNtE26d9Lluwi2;

Здравствуйте, Игорь!

Есть следующая конфигурация: Debian Squeeze
amd64, Apache 2.2.12 (бекэнд), nginx из apt  nginx/0.7.67
(фронтэнд), конфиг файл:
    server
    {
        listen                  x.x.x.x:443;

        keepalive_timeout       60;

        access_log              /dev/null;

        ssl                     on;
        ssl_certificate         cert.pem;
        ssl_certificate_key     key.pem;
        ssl_session_cache       shared:SSL:10m;
        ssl_session_timeout     10m;

        # Obtain host
        if ($request_uri        ~*      "^/([^/]*)(.*)$")
        {
            set $host_parsed    $1;
            set $uri_parsed     $2;
        }
        if ($uri_parsed =       "")
        {
            set $uri_parsed     "/";
        }

        location        /
        {
            # Buffering
            proxy_buffering     on;

            # Proxy specification
            proxy_pass          http://$host_parsed$uri_parsed;
            proxy_set_header    Host                    $host_parsed;
            proxy_set_header    HTTPS_TUNNEL_HOST       $remote_addr;
            proxy_set_header    HTTPS_TUNNEL_SERVER     "myserverid";
            proxy_set_header    HTTPS_PASSED_THROUGH    "1";

            # Debug headers
            proxy_set_header    DEBUG_URI_REQUESTED     $request_uri;
            proxy_set_header    DEBUG_HOST_PARSED       $host_parsed;
            proxy_set_header    DEBUG_URI_PARSED        $uri_parsed;
        }
    }

Пока дело не доходит до файлов размера
1ГБ и более, все работает
безукоризненно. Для файлов более 1ГБ
происходит следующее: загружается
кусок от 1037 до 1700 мегабайт, после чего
nginx перестает отдавать контент. Средний
размер файла - 2-8ГБ. От протяженности
даунлоада по времени ничего не
меняется: тестировали на скоростях от
300кбайт/c до 12мбайт/c. В логах пусто.
Стоит отключить proxy_buffering - все работает.
Анализ путем использования strace
показал, что nginx буферизует не более
1024мб (отслеживается через дескрипторы
fd в proc). Свободного места на разделе, где
nginx хранит промежуточные данные более,
чем достаточно. Коронный вопрос: это
баг или я дурак?

С уважением,

Б.

Posted at Nginx Forum: 
http://forum.nginx.org/read.php?21,216011,216011#msg-216011

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.