Как кешировать видео с сохранением функциональности модуля ngx_http_mp4_module?

Евгений Степаненко podnimator на gmail.com
Ср Апр 10 05:53:57 UTC 2019


Здравствуйте,

В данный момент раздаем видео (ngx_http_mp4_module) с файлового сервера
(35TB) и начали упираться в дисковую производительность. Хочу настроить
кеширование популярных видеофайлов с помощью Nginx. Пробовал с proxy_store,
но как контролировать объем кеша, ведь нет вытеснения по LRU?
Пробовал Slice, но как контролировать скорость отдачи фрагмента без
limit_rate? Есть опасения, что на сервере c каналом 10-20 Gbps будет
высокая нагрузка из за накладных расходов во время работы Slice.

Кто нибудь знает, как работают кеширующие видео серверы в CDN?

location ~* \.mp4$ {
    mp4;
    mp4_buffer_size      3m;
    mp4_max_buffer_size  15m;
    limit_rate           128k;
    limit_rate_after     3m;
    root /var/www/cache;
    try_files $uri @storage;
}

location @storage {
    max_ranges 0;
    proxy_set_header If-Range "";
    proxy_set_header Range "";
    proxy_hide_header accept-ranges;
    proxy_pass http://files.com;
    proxy_store on;
    proxy_store_access user:rw  group:rw  all:r;
    proxy_temp_path /var/www/tmp/;
    root /var/www/cache;
}
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20190410/1fe112f1/attachment.html>


Подробная информация о списке рассылки nginx-ru