Що таке Varnish і як його можна використовувати для підвищення продуктивності HTTP?
Абсолютно кожен користувач, який стикається з розробкою сайтів і додатків, розуміє, що в сучасному світі інтернет-технологій продуктивність проекту є критично важливим фактором. Швидке завантаження сторінок не тільки покращує користувацький досвід, але й підвищує SEO-рейтинг сайту. Це також має великий вплив на динаміку зростання прибутку вашого проекту. Одним з інструментів, який може значно підвищити продуктивність HTTP-запитів, є Varnish Cache. У цій статті ми розглянемо переваги використання Varnish і те, чим він може бути корисний для вас. Перше, що варто згадати, це те, що Varnish – це високопродуктивний HTTP-прискорювач, який використовується для кешування вмісту веб-сайтів. Його робота полягає в тому, що він встановлюється перед веб-сервером і обробляє запити від клієнтів, повертаючи кешовані копії сторінок замість того, щоб кожного разу звертатися до веб-сервера. Це значно знижує навантаження на сервер і прискорює обробку запитів. Тобто цей інструмент фактично прискорює, іноді навіть у кілька разів, роботу вашого сервера.
Як встановити та керувати Varnish
Способи встановлення залежать від конкретної операційної системи, в цьому посібнику ми орієнтуємося на Ubuntu 22.04. Встановити Varnish можна за допомогою наступної команди:
apt install varnish
Після успішного встановлення Varnish потрібно налаштувати його для роботи з вашим веб-сервером. За замовчуванням Varnish слухає порт 6081. Ви можете змінити конфігурацію у файлі
/etc/varnish/default.vcl.
Наприклад, він може виглядати так, якщо ви вирішите змінити порт (наприклад, порт http-alt )
backend default {
.host = "127.0.0.1";
.port = "8080";
Приклад роботи з Varnish
Існує кілька варіантів роботи з Varnish. Наприклад, вам потрібно налаштувати час життя кешу (TTL), і ви можете налаштувати його в залежності від типу контенту. Наприклад, для новинного сайту ви можете встановити короткий час життя кешу для актуальних новин і довший для архівних новин і не дуже актуальних матеріалів.
sub vcl_backend_response {
if (bereq.url ~ "^/news") {
set beresp.ttl = 2m;
} else {
set beresp.ttl = 72h;
}
}
Як ви можете використовувати його для покращення продуктивності HTTP
Існує кілька важливих переваг, які користувачі можуть отримати, використовуючи Varnish для покращення продуктивності HTTP. Деякі з них перераховані нижче:
- Анонімізація. Користувачі Інтернету часто стикаються з процесом сканування доменного імені. Це може свідчити про роботу зворотного проксі-сервера, який отримує інформацію про проксі-сервер, а не про реальний веб-сервер, що стоїть за ним.
- Безпека. Веб-сайт, захищений зворотним проксі, може легше уникати зловмисних атак. Це допоможе підтримувати безперебійну роботу веб-сайту, не завдаючи жодних втрат вашим клієнтам.
- Завантаження SSL або завершення SSL. Зворотний проксі-сервер може приймати всі HTTPS-запити і виконувати SSL-рукостискання з браузером користувача. Потім ці запити перетворюються в HTTP і надсилаються на веб-сервер. Це звільняє ваш сервер від рукостискання SSL, і він може зайнятися іншими важливими справами (наприклад, завантаженням решти вмісту веб-сторінки);
- І нарешті, кешування! Якщо ви дозволите зворотному проксі тимчасово зберігати статичний вміст на ваших сторінках, він буде оброблятися щоразу, коли до нього буде зроблено новий запит: не потрібно буде повертатися до початкового сервера, і ваші сторінки завантажуватимуться швидше.