ПРОЕКТЫ 


  АРХИВ 


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]

MP4 + proxy_cache/proxy_store


  • To: nginx-ru <nginx-ru@xxxxxxxxx>
  • Subject: MP4 + proxy_cache/proxy_store
  • From: Alexander Moskalenko <alexander.moskalenko@xxxxxxxxx>
  • Date: Mon, 24 Oct 2011 11:58:28 +0300
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; bh=ySIO+/claZrkBjI4BOlmVJqCrprH+mYu6ffkpv5+Rh8=; b=LrAYQag6k6rdMQNNJF8ZHKQ6TmuceTz8e8hyBAJv65FagezSzIu316LcnyUrzaEHcN dwFGZBEFj+AutOsAMsy3XYxiKFLOUvxkdrECnUKl4FAv0FEpFn+aFlI/kB10lwy7SpOc ZV6qNRC8PVrcErQLj7o9++1iWYgGU3K8HHrNs=

Добрый день.

Есть схема 2 origin + 10 edge.
С origin все хорошо, отдает быстро.

Проблема возникает с edge.
На них довольно мало места и весь контент там держать не получится.
Хотелось сделать схему с кешированием либо дотягиванием и удалением по atime.

Насколько я понял с кешированием не будет стримминга. Верно?

С proxy_store есть проблема с отдачей клиенту до того как файл полностью скачался.
Файлы где-то в среднем по 15МБ.

    location / {
internal;
aio             on;
directio        512;
output_buffers  1 128k;

location ~* \.mp4$ {
   mp4;
   try_files $uri @origin;
   limit_rate_after  1m;
   limit_rate        200k;
}
                                       
location ~* \.flv$ {
   flv;
   try_files $uri @origin;
   limit_rate_after  1m;
   limit_rate        200k;
}
    }
    
    location /dl/ {
return 503;
location ~ ^/dl/(?P<secure_hash>[\w\-=]+,\d+)(?P<file>/.+)$ {
   secure_link $secure_hash;
   secure_link_md5 $secure_link_expires.$file.<passphrase>;
   if ($secure_link = "") {
return 404;
   }
   if ($secure_link = 0) {
return 404;
   }
   rewrite ^ /$file last;
}
    }
    
    location @origin {
proxy_pass http://origin;
#proxy_buffering off;
proxy_ignore_client_abort on;
proxy_store             on;
proxy_store_access      user:rw  group:r  all:r;
    }

Вот так все работает, но клиенту ничего не отдается пока файл полностью не скачался (в принципе ожидаемо), но если раскоментировать proxy_buffering то proxy_store перестает складывать файл.
# nginx -V
nginx: nginx version: nginx/1.0.8
nginx: built by gcc 4.1.2 20080704 (Red Hat 4.1.2-50)
nginx: TLS SNI support disabled
nginx: configure arguments: --prefix=/etc/nginx/ --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-mail --with-mail_ssl_module --with-file-aio --with-ipv6 --with-cc-opt='-O2 -g -m64 -mtune=generic'


Вопрос собственно как правильно реализовать схему?
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.