scgi_store

Директива `scgi_store` определяет, куда сохранять тело ответа на SCGI-запрос. — NGINX HTTP Core

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

Описание

Директива `scgi_store` используется для указания пути к файлу, в котором может быть сохранено тело ответа от SCGI-сервера. Это особенно полезно для целей кеширования или отладки, когда данные ответа нужны для анализа или последующего доступа. Когда эта директива задана, NGINX сохранит тело ответа в указанный файл перед отправкой ответа клиенту. Имя файла можно задавать динамически с помощью переменных, что добавляет гибкости процессу сохранения. Директива `scgi_store` принимает один аргумент — путь к выходному файлу, в котором будет храниться тело ответа. Если указанный файл уже существует, он будет усечён перед записью нового тела ответа. Директива поддерживается в различных контекстах, включая `http`, `server` и `location`, что обеспечивает гибкость её использования в разных областях конфигурации NGINX. Также необходимо установить корректные права доступа для указанного пути хранения, чтобы рабочий процесс NGINX имел права на запись в это место. При использовании этой директивы рассмотрите возможность её применения совместно с директивой `scgi_pass` для установления соединения с SCGI-бэкендом. Поскольку это может включать операции с файловой системой, необходимо учитывать влияние на производительность, особенно если ответы большие или частые, так как операции ввода-вывода файлов могут стать узким местом при высокой нагрузке.

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

location /scgi {
    scgi_pass 127.0.0.1:4000;
    scgi_store /var/www/html/scgi_response.txt;
}

Убедитесь, что рабочий процесс NGINX имеет разрешение на запись в указанный путь хранения.

Перезапись существующих файлов может привести к потере данных; убедитесь, что применяются надлежащие практики управления файлами.

Динамическая генерация имен файлов с помощью переменных должна быть тщательно протестирована, чтобы избежать проблем с файловой системой.