MP4 + proxy_cache/proxy_store
Alexander Moskalenko
alexander.moskalenko на gmail.com
Вт Окт 25 14:09:32 UTC 2011
Спасибо за конфиг, к сожалению уперся в out на origin серверах.
Если же сделать с limit_zone по $uri то edge укладывается по IO.
Я тут немного переработал конфиг, вышло вот такое, если кому интересно.
limit_zone one $binary_remote_addr 64k;
server {
listen 127.0.0.1:812;
server_name _;
root /media;
location / {
limit_conn one 1;
proxy_pass http://origin;
proxy_ignore_client_abort on;
proxy_store on;
}
}
server {
listen 1.1.1.1:80;
server_name _;
root /media;
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 403;
}
if ($secure_link = 0) {
return 403;
}
rewrite ^ /$file last;
}
}
location @origin {
proxy_pass http://127.0.0.1:812;
proxy_ignore_client_abort on;
proxy_intercept_errors on;
error_page 503 = @stream;
}
location @stream {
proxy_pass http://origin;
proxy_buffering off;
}
}
2011/10/24 Kruglov Eugenie <ekruglov at gmail.com>
> limit_zone one $binary_remote_addr 64k;
> server {
> listen 127.0.0.101:812;
> server_name host_stream_store;
>
> location ~ '^/store/(\d+_(\d+)_[\da-f]{32}\.flv)$' {
> limit_conn one 1;
> proxy_pass http://remote-backend/$1;
> proxy_store /mnt/storage/streaming/$2.flv;
> }
> }
>
> server {
> server_name frontend;
>
> location ~ '^/\d+_(\d+)_[\da-f]{32}\.flv$' {
> set $args_start $args;
> if ( -f /mnt/storage/streaming/$1.flv ){
> rewrite ^ /stream$request_uri last;
> }
> rewrite ^ /stream_store$request_uri last;
> }
> location @stream {
> proxy_pass http://remote-backend$request_uri;
> proxy_set_header Host remote-backend;
> }
> location ~ '^/stream_store/(\d+_\d+_[\da-f]{32}\.flv)' {
> internal;
> proxy_pass http://127.0.0.101:812/store/$1;
> proxy_intercept_errors on;
> error_page 503 = @stream;
> }
> location ~ ^/stream/\d/\d/([^/]+\.flv)$ {
> internal;
> set $args $args_start;
> alias /mnt/storage/streaming/$1;
> mp4;
> }
> }
>
> 2011/10/24 Alexander Moskalenko <alexander.moskalenko at gmail.com>
>
>> 2011/10/24 Kruglov Eugenie <ekruglov at gmail.com>
>>
>>> Если устроит реализация, при которой во время работы proxy_store одному
>>> клиенту все остальные проксируются на бекенд - могу выложить конфиг.
>>>
>>> Выкладывайте, возможно хоть подтолкет в нужное направление.
>>
>> _______________________________________________
>> nginx-ru mailing list
>> nginx-ru at nginx.org
>> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>>
>
>
>
> --
> Faithfully yours, Eugenie
> ICQ #701217
> GTalk ekruglov at gmail.com
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20111025/6bafafa1/attachment.html>
Подробная информация о списке рассылки nginx-ru