uwsgi_cache
Директива uwsgi_cache задаёт общий кэш для ответов от uWSGI. — NGINX HTTP Core
Описание
Директива `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;
}
}
}Убедитесь, что путь к кэшу доступен и для него установлены соответствующие права доступа.
Следите за размером и использованием кэша, чтобы избежать чрезмерного использования диска.
Будьте осторожны при кэшировании конфиденциальных данных, которые не следует разглашать.
Не забывайте правильно обрабатывать инвалидацию кэша, чтобы обеспечить обновление содержимого.