open_file_cache_errors

Директива 'open_file_cache_errors' контролирует, следует ли кэшировать статусы ошибок при открытии файлов в NGINX. — NGINX HTTP Core

open_file_cache_errors
httpserverlocation
Синтаксисopen_file_cache_errors on | off;
По умолчаниюoff
Контекстhttp, server, location
МодульNGINX HTTP Core
Аргументыflag

Описание

Директива 'open_file_cache_errors' — это функция оптимизации производительности в NGINX, которая определяет, должен ли сервер кэшировать ответы с ошибками при попытках доступа к файлам. Когда она включена, NGINX будет кэшировать статусы ошибок, связанные с попытками доступа к файлам, что может улучшить время отклика при повторных запросах к одним и тем же файлам, которые могут не существовать или быть недоступны для чтения. Это предотвращает необходимость NGINX проверять файловую систему при каждом запросе файла, снижая дисковые операции ввода-вывода и улучшая производительность при высокой нагрузке. Директива принимает в качестве аргумента флаг: "on" для включения кэширования этих ошибок и "off" для его отключения. По умолчанию директива отключена, то есть статусы ошибок не кэшируются, и каждый запрос доступа к файлу повторно проверяет файловую систему, что может привести к большей задержке, особенно если несколько запросов направлены к одним и тем же отсутствующим или недоступным файлам. В сценариях, где критична достоверность статусов ошибок (например, при динамически генерируемом контенте), используйте с осторожностью, так как это может приводить к отдаче устаревших ошибок при неправильной настройке.

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

http {
    open_file_cache_errors on;
}

server {
    location / {
        open_file_cache_errors on;
    }
}

Caching errors могут привести к устаревшим ответам, если статус файла изменится и cache не будет обновлён.

Если включено, длительно выполняющиеся ответы с ошибкой могут привести к ненужному disk I/O, если ошибки не cached должным образом.