Если какие-то запросы не часто меняются, то можно закэшировать их на стороне сервера. Тогда Nginx один раз получит результат запроса от вашего приложения, а дальше будет отдавать их другим клиентам.
Перед настройками, нам нужно создать директорию, в которой будут хранится данные кэша:
Чтобы включить кэширование, нужно прописать несколько директив в основной конфигурации nginx.conf
.
proxy_cache_path
указывает путь в файловой системе.
Не кэшируйте HTTP-ответы при первом обращении. Используйте proxy_cache_min_uses 2
, чтобы кэшировать только те элементы, к которым обращались более одного раза. Таким образом, вы уменьшите нагрузку прокси-кэша на запись и предотвратите заполнение кэша содержимым, к которому редко обращаются.
Ключ кэширования Nginx по умолчанию не очень хорошо работает с сайтами с несколькими поддоменами. Вы можете настроить ключ кэширования, задав proxy_cache_key. В своей конфигурации я использую вот такой ключ: proxy_cache_key $scheme$host$uri$is_args$args;
Переносим кэш Nginx в RAM
Можно значительно ускорить кэш, если смонтировать его не в файловую систему а в RAM.
Для этого также создаем папку для кэша, можно использовать ту же, но ее нужно очистить от папок. Далее монтируем созданный каталог в RAM с помощью команды tmpfs, выделяя 256 мегабайт под кэш:
Если вам понадобиться отключить RAM-кэш, просто выполните команду:
Чтобы автоматически пересоздать каталог к’ша в RAM после перезагрузки сервера, нам нужно обновить файл /etc/fstab
. Добавьте в него следующую строку:
Мета информация
Область:: 00 HighLoad
Родитель:: Кэширование
Источник::
Автор::
Создана:: 2024-04-07