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