Назад | Перейти на главную страницу

Возможно ли кеширование Nginx FastCGI для пользовательских URL-адресов?

Я пытаюсь создать собственное решение для кеширования для своего веб-сайта с помощью FastCGI caching.

Я пытаюсь кэшировать только определенные URL-адреса, которые вызывают большую нагрузку на трафик. Из своих журналов я точно знаю, какие это URL, но они постоянно меняются.

Есть ли способ указать определенные URL-адреса, которые Nginx должен кэшировать, но не кэшировать все остальное.

Я следил этот учебник, и у меня заработало кеширование. Но я не могу понять, как кэшировать пользовательские URL-адреса. Скажем, например, url.com/b.php?q=123.

В идеале я бы сохранил список URL-адресов в файле .conf, который загружает Nginx, и он использует кеш только для этих URL-адресов, но не кеширует все остальные файлы. Возможно ли это с Nginx?

Вы можете использовать map для этого. Поместите его в отдельный файл, который included с сервера 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;