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
|