ПРОЕКТЫ 


  АРХИВ 


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-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


 




Copyright © Lexa Software, 1996-2009.