fastcgi_cache_max_range_offset

Управляет максимальным допустимым смещением для range-запросов в кэшировании FastCGI. — NGINX HTTP Core

fastcgi_cache_max_range_offset
httpserverlocation
Синтаксисfastcgi_cache_max_range_offset size;
По умолчаниюnone
Контекстhttp, server, location
МодульNGINX HTTP Core
Аргументы1

Описание

Директива `fastcgi_cache_max_range_offset` задаёт максимальное количество байт, которое может быть указано в качестве смещения, когда клиент выполняет range‑запрос к ресурсу, обслуживаемому кэшированием FastCGI. Эта директива помогает оптимизировать поведение кэша и ответы для частично загруженных ресурсов, гарантируя, что сервер не выдаёт устаревшие или избыточные данные, когда клиенты запрашивают только определённые части файла. Установка этой директивы с числовым значением позволяет контролировать детализацию ответа на range‑запросы к кешированному содержимому. Если смещение превышает указанное значение, NGINX может отказаться от выполнения range‑запроса или обработать его иначе в зависимости от реализации модуля FastCGI и применяемой стратегии кэширования. Это особенно полезно в ситуациях, где критично минимизировать потребление пропускной способности, или для более эффективной выдачи ответов при работе с большими файлами, к которым часто обращаются по частям. Эту директиву можно применять в разных контекстах, включая http, server и location-блоки в файле конфигурации NGINX, что делает её гибкой для различных сценариев использования и настроек сервера.

Пример конфига

http {
    fastcgi_cache_path /var/cache/nginx/fastcgi_temp levels=1:2 keys_zone=my_cache:10m;
    server {
        location / {
            fastcgi_pass backend;
            fastcgi_cache my_cache;
            fastcgi_cache_max_range_offset 1048576;  # 1 MB
        }
    }
}

Установка слишком большого смещения может привести к ненужному использованию пропускной способности при частичном получении содержимого.

Если смещение не задано и поступает запрос диапазона с большим смещением, это может привести к тому, что NGINX отклонит запрос или вернет ошибку 416.

Убедитесь, что указанный размер соответствует ожидаемому размеру диапазона для передаваемого содержимого, чтобы избежать проблем с производительностью.