2.4.1.1.13. Серверне кешування
Важливі моменти:
- При увімкненні кешування переконайтеся, щоб сайт повертав заголовки, що забороняють кешування при роботі з його адмін-панеллю, інакше такі сторінки можуть потрапляти в кеш і бути доступними для неавторизованих користувачів, або налаштуйте винятки.
- При використанні сесій PHP автоматично додає в відповіді заголовок
Cache-Controlі кешування за замовчуванням не працює. Для роботи кешування значення обмежувача кешу має бутиpublic(див. session_cache_limiter).
Як працює кешування
При використанні кешування всі відповіді сервера зберігаються в кеші і при надходженні нових запитів замість передачі їх на обробку скриптам сайту повертається вже готова відповідь з кешу. Використання кешування допомагає суттєво знизити навантаження на веб-сервер.
Сторінка не зберігається в кеші:
- Якщо запит містить:
- Заголовок
Cookieз ключемnocacheз непустим значенням і не рівним0. - GET-параметр
nocacheз непорожнім значенням і не рівним0. - Заголовок
Authorizationз непустим значенням і не рівним0.
- Якщо відповідь містить:
- Заголовок
X-Accel-Expiresзі значенням0. - Заголовок
Set-Cookie. - Заголовок
Varyзі спеціальним значенням*. - Заголовок
Cache-Controlз будь-яким із значень:max-age=0,private,no-store,no-cache.
- Якщо в розділі «Хостинг → Мої сайти → ваш сайт → Налаштування PHP» вимкнено параметр «output_buffering» (коли буферизація вимкнена, nginx не обробляє дані з веб-сервера і не може їх кешувати).
Існуючий кеш ігнорується, якщо запит містить такі ж заголовки/параметри, при яких сторінка не зберігається в кеші (див. вище). ⚠️ Кеш при цьому не перезаписується і не видаляється. Наприклад, при запиті A сторінка була збережена в кеші, потім надійшов запит B з умовами для ігнорування кешу — кеш був проігнорований і сторінка була повернута сайтом, якщо надійде запит C без умов для ігнорування кешу — буде повернутий кеш, який був згенерований для запиту A.
За допомогою заголовка відповіді X-Cache-Status можна стежити за використанням кешу:
- Сторінка була повернута сайтом:
MISS— сторінки не було в кеші.BYPASS— кеш був проігнорований (див. вище).EXPIRED— термін дії кешу закінчився.
- Сторінка була повернута з кешу:
STALE— термін дії кешу закінчився, але з сайту не вдалося отримати актуальну версію сторінки.REVALIDATED— термін дії кешу закінчився, але він був повторно перевірений за допомогою заголовкаIf-Modified-SinceабоIf-None-Match.UPDATING— термін дії кешу закінчився, але сторінка в процесі оновлення з сайту.HIT— сторінка була повернута з кешу.
Коли кеш ігнорується і у відповіді є заголовок “'Cache-Control”', до статусу може бути додано позначення причини, через яку кеш був проігнорований: /PRIVATE, /NO-CACHE, /NO-STORE, /MAX-AGE.
Налаштування кешування
Для налаштування кешування в розділі «Хостинг → Мої сайти → ваш сайт → Налаштування сайту» на вкладці «Кешування» у блоці «Налаштування кешування сайту» виберіть потрібний режим, вкажіть термін дії та збережіть зміни:
- Режим:
- Вимкнено — кешування вимкнено.
- Увімкнено — кешування з урахуванням GET-параметрів (для запитів до однієї і тієї ж сторінки з різними GET-параметрами і без них з кешу будуть повертатися різні відповіді).
- Ігнорувати параметри запиту — кешування з ігноруванням GET-параметрів (для запитів до однієї і тієї ж сторінки з різними GET-параметрами або без них з кешу буде повертатися однакова відповідь).
- Термін життя — через скільки хвилин з моменту останнього використання кеш буде видалено.
- Підбирається індивідуально. Для сайтів з частими оновленнями контенту можна використовувати невеликі значення, з нечастими оновленнями — більш високі.
Налаштування винятків
Якщо потрібно, щоб певні сторінки чи розділи сайту не потрапляли до кешу незалежно від наявності необхідних для цього заголовків, у блоці «Винятки з кешування» додайте правила для їхнього виключення:
Після натискання кнопки «Додати» у формі додавання вказуються наступні дані:
- Застосування — за якою частиною URL буде здійснюватися пошук:
- URL починається на — на початку URL.
- URL закінчується на — наприкінці URL.
- URL містить — у будь-якій частині URL.
- URL — рядок, пошук якого буде здійснюватися у вибраній частині URL:
- Домен вказувати не потрібно.
- Слеш
/на початку та в кінці вказувати не потрібно.
Кілька прикладів:
- Якщо вибрати URL починається з і вказати URL як
admin, виняток буде додано як/admin*і кешування не застосовуватиметься до всіх URL-адрес, що починаються з/admin. - Якщо вибрати URL закінчується на і вказати URL як
page, виняток буде додано як*/pageі кешування не застосовуватиметься до всіх URL-адрес, що закінчуються на/page. - Якщо вибрати URL містить і вказати URL як
contains, виняток буде додано як*/contains*і кешування не застосовуватиметься до всіх URL, у середині яких є/contains.
Очищення кешу
У блоці «Налаштування кешування сайту» натисніть «Очистити кеш».
Коментарі