Я пытаюсь создать собственное решение для кеширования для своего веб-сайта с помощью FastCGI caching.
Я пытаюсь кэшировать только определенные URL-адреса, которые вызывают большую нагрузку на трафик. Из своих журналов я точно знаю, какие это URL, но они постоянно меняются.
Есть ли способ указать определенные URL-адреса, которые Nginx должен кэшировать, но не кэшировать все остальное.
Я следил этот учебник, и у меня заработало кеширование. Но я не могу понять, как кэшировать пользовательские URL-адреса. Скажем, например, url.com/b.php?q=123.
В идеале я бы сохранил список URL-адресов в файле .conf, который загружает Nginx, и он использует кеш только для этих URL-адресов, но не кеширует все остальные файлы. Возможно ли это с Nginx?
Вы можете использовать map
для этого. Поместите его в отдельный файл, который include
d с сервера http
block, а затем при каждом изменении перезагружайте nginx.
Пример:
map $request_uri $my_no_cache {
default 1;
/b.php?q=123 0;
}
Чтобы использовать его, поместите его в соответствующий server
или location
:
fastcgi_no_cache $my_no_cache;
fastcgi_cache_bypass $my_no_cache;