Рейтинг:2

Запретить NGINX локально кэшировать каталог

флаг nc

Итак, проблема, с которой я сейчас сталкиваюсь, заключается в том, что NGINX в моей системе продолжает кэшировать огромные видеофайлы в памяти при выполнении HTTP-запроса. Это приводит к тому, что NGINX использует более 20 ГБ памяти, и мне приходится запускать синхронизировать; эхо 1 > /proc/sys/vm/drop_caches (очистка кэша страниц) часто, чтобы остановить постоянный обмен. Я предоставил ниже соответствующую конфигурацию.

nginx.conf

расположение /защищено/ {
    внутренний;
    псевдоним /usr/share/nginx/html/videos/;
}

script.php

функция Скачать(){
    глобальный $path, $fname;
    $file = "$path/$fname";
    header("Тип контента: видео/mp4");
    заголовок ("Длина содержимого: " . Размер файла ($ файл)); 
    header('Content-Disposition: вложение; filename="'.$fname.'"');
    header("X-Accel-Redirect: /protected/$fname");
    выход;
}

Что я пробовал в nginx.conf:

отправка файла выключена;
if_modified_since выключено;
истекает;
пометка выключена;
proxy_no_cache 1;
proxy_cache_bypass 1;
open_file_cache выключен;

P.S: Я рассчитываю использование памяти для этих файлов с помощью pcstat и fincore, эти файлы MP4 кэшируются на 100% при просмотре пользователем, и каждый имеет размер 5 ГБ+.

флаг us
Вы уверены, что это nginx, использующий 20 ГБ+ памяти? Удаление кеша страниц не влияет на использование памяти nginx, оно просто удаляет файлы из кеша.
Рейтинг:1
флаг us

Можно отключить кеширование операционной системы для файлов, обслуживаемых nginx, с помощью направление <размер> параметр. <size> является пороговым значением размера файла, файлы большего размера будут скопированы с использованием DMA напрямую, и файлы не кэшируются.

djdomi avatar
флаг za
proxy_no_cache 1; afaik вкл или выкл правильно
флаг us
Не в этом случае, поскольку обратный прокси-сервер не настроен. `proxy_no_cache` влияет только на кэширование обратного прокси.
djdomi avatar
флаг za
поскольку вы не показываете полную конфигурацию, мы должны предположить, что вы используете прокси-соединение.
djdomi avatar
флаг za
`expires -1;` отключает любую попытку кэширования, поскольку делает недействительными любые запросы, а также `add_header 'Cache-Control' 'no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0';` заставить ДЕЙСТВИТЕЛЬНО игнорировать любое поведение кэширования
флаг us
Это отключение кэширования HTTP. Это никак не влияет на использование памяти nginx.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.