uwsgi_cache

Директива uwsgi_cache задаёт общий кэш для ответов от uWSGI. — NGINX HTTP Core

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

Описание

Директива `uwsgi_cache` используется в конфигурации NGINX для определения зоны кэша, которая хранит ответы от приложений uWSGI, повышая производительность приложений за счёт сокращения времени отклика. Каждый раз, когда NGINX отправляет запрос на upstream uWSGI сервер и получает ответ, этот ответ может быть сохранён в указанном кэше для последующих запросов. Это обеспечивает более быстрые ответы на повторные запросы, которые обычно инициировали бы обработку uWSGI-приложением, позволяя выдавать кэшированные ответы напрямую из NGINX вместо многократного вызова самого приложения. Директива принимает один аргумент — имя зоны кэша, ранее определённой с помощью директивы `uwsgi_cache_path`. Поведение кэша также можно контролировать с помощью других директив, таких как `uwsgi_cache_key`, `uwsgi_cache_valid` и `uwsgi_cache_bypass`, среди прочих. Правильная настройка этих дополнительных директив необходима для эффективного управления записями в кэше и контроля времени жизни кэшированных данных в зависимости от типа ответа или условий запроса. Важно отметить, что функции кэширования опираются на заголовки ответа, возвращаемые приложением uWSGI, чтобы определить, следует ли кэшировать содержимое и как долго хранить ответы. Стратегии кэширования могут существенно повысить производительность при высокой нагрузке веб-приложений, особенно при интенсивном трафике.

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

http {
    uwsgi_cache_path /tmp/uwsgi_cache levels=1:2 keys_zone=uwsgi_cache:10m inactive=60m;
    server {
        location /api {
            include uwsgi_params;
            uwsgi_pass uWSGI_backend;
            uwsgi_cache uwsgi_cache;
            uwsgi_cache_valid 200 30m;
        }
    }
}

Убедитесь, что путь к кэшу доступен и для него установлены соответствующие права доступа.

Следите за размером и использованием кэша, чтобы избежать чрезмерного использования диска.

Будьте осторожны при кэшировании конфиденциальных данных, которые не следует разглашать.

Не забывайте правильно обрабатывать инвалидацию кэша, чтобы обеспечить обновление содержимого.