Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Проблемы с созданием proxy-CDN
- To: nginx-ru@xxxxxxxxx
- Subject: Проблемы с созданием proxy-CDN
- From: "PbIXTOP" <nginx-forum@xxxxxxxx>
- Date: Mon, 15 Jul 2013 22:24:31 -0400
- Dkim-signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=helium.jlkhosting.com; s=x; h=Date:Sender:From:Message-ID:Content-Transfer-Encoding:Content-Type:Subject:To; bh=tGicb797EnqifVxHljEvSU0X3nee74XyejDugv3kcPM=; b=q3qA/SI0bJcND1LXKoPXVwfiHrSIyv+GHZKvEEYwzFnoEfWGxek/n/vGLxk2mji8mOHmCMeECC3m/5DqDE/r2GyXk3UXUb4CeSAfTz0Wn+rZE5atnXkJvVOvr3vRoD5EEYFRredcZoU2IZl92pzft4QNqpX2nkMdZsnnqDUtbi4=;
Столкнулся с проблемой.
Имеется программа, которая обновляется используя технологию BITS от
Microsoft.
Поскольку обновляния попадаются большие, решили использовать nginx для
экономии трафика.
Версия nginx, которую возможно поставить на промежуточную машину FreeBSD
8.1, к сожелению не нова:
nginx version: nginx/0.7.67
configure arguments: --prefix=/usr/local/etc/nginx --with-cc-opt='-I
/usr/local/include' --with-ld-opt='-L /usr/local/lib'
--conf-path=/usr/local/etc/nginx/nginx.conf
--sbin-path=/usr/local/sbin/nginx --pid-path=/var/run/nginx.pid
--error-log-path=/var/log/nginx-error.log --user=www --group=www
--http-client-body-temp-path=/var/tmp/nginx/client_body_temp
--http-proxy-temp-path=/var/tmp/nginx/proxy_temp
--http-fastcgi-temp-path=/var/tmp/nginx/fastcgi_temp
--http-log-path=/var/log/nginx-access.log --with-http_stub_status_module
--with-pcre
Конфигурация достаточно стандартна:
worker_processes 8;
events { worker_connections 1024;}
http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local]
"$host"
"$request" $status $body_bytes_sent "$http_referer" "$http_user_agent"
"$http_x_forwarded_for"';
access_log /var/log/nginx-access.log main;
limit_zone softupdate $request_uri 10m;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name proxy.cdn;
default_type application/octet-stream;
limit_conn activity_threshold 1024;
proxy_cache_valid any 10m;
proxy_cache_key $uri$is_args$args;
location / {
if ($request_method !~ GET|HEAD) {return 405;}
open_file_cache max=1000;
expires 10d;
root /var/cache/cdn;
try_files $uri @softupdate_it;
}
location @ms_au_download_it {
open_file_cache max=1000;
expires 3M;
root /var/cache/cdn;
proxy_set_header Range "";
proxy_buffering on;
proxy_ignore_client_abort on;
limit_conn softupdate 1;
proxy_store on;
proxy_set_header Host "parent.cdn";
proxy_set_header If-None-Match "";
proxy_set_header If-Modified-Since "";
proxy_pass http://127.0.0.1:3128;
}
}
}
Как видно при попадании запроса, если файла нет, запрос отправляется дальше
(стоит squid для проверки коректности работы).
Вроде бы все хорошо и настроенно корректо. Но как показывает Squid nginx
вместо одного потока пытается сразу соединяться как просит клиент - 4-10
потоков.
Поэтому строчки
proxy_set_header Range "";
limit_conn softupdate 1;
были написаны чтоб избежать проблем - 206, при которой не работает
proxy_store, и множественных соеденинений. Но она как была так и осталась.
Пока маленький файл на трафике не так заметно. Но когда пытается скачаться
большой файл. эти несколько потоков убивают весь канал.
Posted at Nginx Forum:
http://forum.nginx.org/read.php?21,240884,240884#msg-240884
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru
|