🚀 Час відповіді сервера: кешування

Час за який людина встигне помітити перехід – це 150 мілісекунд. Якщо відповідь сервера менша, то все взагалі чудово, якщо більша, то буде помітний перехід, дискомфорт у користувачів виникає вже після 400 мілісекунд.

Якщо відповідь сервера понад 400 мілісекунд, то варто вже працювати над поліпшенням цього показника. Варто також пам’ятати, що показник залежить від навантаження на сервер, від якості мережі сервера і клієнта, а також від завдань, які виконує скрипт перед відповіддю.

Звідси й випливають усі можливі оптимізації цього показника: збільшення потужності сервера, зниження навантаження, оптимізація ресурсномістких операцій, що виконуються під час завантаження сторінки, а також під’єднання кешувального CDN.

Найпростіше “закидати залізом”: докупити серверу більше ресурсів, використовувати кластер, або хмару. Однак це в довгостроковій перспективі і найдорожчий спосіб. Щодо оптимізації самого застосунку ідеальних порад немає, бо все залежить від того, що робить застосунок, наскільки важлива динамічність блоків тощо.

Використовуйте кешування

Для початку увімкніть усі можливі методи кешування в самому застосунку або CMS, і вже другим етапом – використовуйте повносторінковий кеш nginx, це працюватиме практично з коробки на будь-якому хостингу. Однак пам’ятайте, що повносторінковий кеш nginx вб’є всю динаміку, яка є на сторінці з боку backend, всі користувачі бачитимуть одну сторінку. Але навіть якщо ви зробите роздільне кешування для різних користувачів, то динаміка рандомних блоків і подібний функціонал буде втрачено.

Наведу як приклад найпопулярнішу CMS: WordPress. Приклад хорошої віддачі кешу без втрати контролю над ним описаний у них у статті на офіційному сайті:

тиць
wordpress.org/support/article/nginx

За посиланням є приклади одразу для кількох плагінів кешування.

Для кешування динамічних блоків можна використовувати технологію SSI – Server Side Include:

тиць
nginx.org/ru/docs/http/ngx_http_ssi_module.html

Це коли backend віддає частини шаблону, а збірку робить уже nginx, збираючи частково із закешованих шматків, частково з динамічних. Це гарне рішення для великих і відвідуваних проектів, наприклад сайтів ЗМІ.

Завжди орієнтуйтеся на сам застосунок, не використовуйте універсальні поради з інтернету, якщо не впевнені на сто відсотків, що вони вам підходять.

Додати коментар