Кеш для лаків (зазвичай називається Лак)-це потужний і швидкий зворотний проксі з відкритим кодом HTTP прискорювач із сучасною архітектурою та гнучкою мовою конфігурації. Бути зворотним проксі просто означає, що це програмне забезпечення, яке можна розгорнути перед веб -сервером (який є вихідним сервером або бекендом), наприклад Nginx, щоб отримувати HTTP -запити клієнтів та надсилати їх на вихідний сервер для обробки. І він доставляє клієнтам відповідь від вихідного сервера.
Лак виступає посередником між Nginx та клієнтів але з деякими перевагами продуктивності. Його основна мета - прискорити завантаження ваших програм, працюючи як механізм кешування. Він отримує запити від клієнтів і один раз пересилає їх у бекенд, щоб кешувати запитуваний вміст (зберігати файли та фрагменти файлів у пам’яті). Тоді всі майбутні запити на точно подібний вміст будуть обслуговуватися з кешу.
Це прискорює завантаження ваших веб -додатків і побічно покращує загальну продуктивність вашого веб -сервера, оскільки Лак буде обслуговувати вміст із пам’яті замість обробки файлів Nginx з диска зберігання.
Крім кешування, Лак також має кілька інших варіантів використання, включаючи маршрутизатор запитів HTTP, балансировщик навантаження, брандмауер веб -додатків тощо.
лак налаштовано за допомогою вбудованого пристрою з високою можливістю розширення Мова конфігурації Varnish (VCL), що дозволяє писати політику щодо того, як слід обробляти вхідні запити. Ви можете використовувати його для створення індивідуальних рішень, правил та модулів.
У цій статті ми розглянемо кроки для встановлення Nginx веб -сервер і Кеш для лаків 6 на свіжому CentOS 8 або RHEL 8 сервер. RHEL 8 користувачі повинні переконатися, що вони увімкнути підписку redhat.
Щоб налаштувати, заповніть ЛЕМП стек замість встановлення Nginx лише веб -сервер, ознайомтеся з наступними посібниками.
1. CentOS/RHEL 8 поставляється з останньою версією Nginx програмне забезпечення веб -сервера, тому ми встановимо його зі сховища за замовчуванням, використовуючи наступне команди dnf.
# dnf оновлення. # dnf встановити nginx.
2. Одного разу Nginx встановленого, вам потрібно запустити, увімкнути та перевірити стан за допомогою наведеного нижче команди systemctl.
# systemctl запустити nginx. # systemctl увімкнути nginx. # systemctl статус nginx.
3. Якщо вам трохи цікаво, ви також можете перевірити сокет Nginx TCP, який за замовчуванням працює на порту 80, використовуючи наступне команда ss.
# ss -tpln.
4. Якщо ви використовуєте брандмауер в системі, не забудьте оновити правила брандмауера, щоб дозволити запити на веб -сервер.
# firewall-cmd --zone = public --permanent --add-service = http. # firewall-cmd --reload.
5. CentOS/RHEL 8 забезпечує a Лак кеш DNF модуль за замовчуванням, який містить версію 6.0LTS (Довгострокова підтримка).
Щоб встановити модуль, виконайте таку команду.
# dnf модуль встановити лак.
6. Після завершення встановлення модуля можна підтвердити версію Лак встановлено у вашій системі.
# varnishd -V.
7. Після установки Кеш для лаків, головна виконувана команда, встановлена під /usr/sbin/varnishd і файли конфігурації лаку знаходяться в /etc/varnish/.
Файл /etc/varnish/default.vcl - це основний файл конфігурації лаку, написаний за допомогою VCL та /etc/varnish/secret - це секретний файл лаку.
8. Далі запустіть Лак служби, увімкніть її для автоматичного запуску під час завантаження системи та переконайтеся, що вона запущена та працює.
# systemctl стартовий лак. # systemctl увімкнути лак. # лак статусу systemctl.
9. У цьому розділі ми покажемо, як налаштувати Кеш для лаків бігти попереду Nginx. За замовчуванням Nginx прослуховує порт 80, як правило, кожен блок сервера (або віртуальний хост) налаштований для прослуховування на цьому порту.
Наприклад, подивіться на стандартний блок сервера nginx налаштований у основному файлі конфігурації (/etc/nginx/nginx.conf).
# vi /etc/nginx/nginx.conf.
Знайдіть розділ блокування сервера, як показано на наведеному нижче знімку екрана.
10. Бігти Лак перед Nginx, вам слід змінити стандартний порт Nginx з 80 до 8080 (або будь -який інший порт на ваш вибір).
Це має бути зроблено у всіх майбутніх файлах конфігурації серверного блоку (зазвичай створюються під /etc/nginx/conf.d/) для веб -сайтів або веб -додатків, через які ви хочете обслуговуватись Лак.
Наприклад, блок сервера для нашого тестового сайту tecmint.lan
є /etc/nginx/conf.d/tecmint.lan.conf і має наступну конфігурацію.
сервер {слухати 8080; ім'я_сервера www.tecmint.lan; root /var/www/html/tecmint.lan/; розташування / {} error_page 404 /404.html; location = /40x.html {} error_page 500 502 503 504 /50x.html; location = /50x.html {} }
Важливо: Не забудьте вимкнути стандартний серверний блок, коментуючи його розділ конфігурації в /etc/nginx/nginx.conf файл, як показано на наступному знімку екрана. Це дозволяє запускати інші веб -сайти/програми на вашому сервері, інакше Nginx завжди направлятиме запити до блоку серверів за замовчуванням.
11. Після завершення налаштування перевірте файл конфігурації на наявність помилок і перезапустіть службу Nginx, щоб застосувати останні зміни.
# nginx -t. # systemctl перезапустіть nginx.
12. Далі, щоб отримати HTTP запити від клієнтів, нам потрібно налаштувати Лак для запуску через порт 80. На відміну від попередніх версій Кеш для лаків де ця зміна була внесена в Лак файл середовища (який зараз не підтримується) у версії 6.0 і вище.
Нам потрібно внести необхідні зміни у файл служби Varnish. Виконайте таку команду, щоб відкрити відповідний файл служби для редагування.
# systemctl edit -повний лак.
Знайдіть наступний рядок і змініть значення -а
перемикач, який вказує адресу і порт прослуховування. Встановіть для порту значення 80 як показано на наступному знімку екрана.
Зверніть увагу, якщо ви не вказуєте адресу, varnishd вислухає все доступне IPv4 та IPv6 інтерфейси, активні на сервері.
ExecStart =/usr/sbin/varnishd -a: 80 -f /etc/varnish/default.vcl -s malloc, 256 м.
Збережіть зміни у файлі та вийдіть.
13. Далі вам потрібно визначити бекенд -сервер Лак відвідає, щоб отримати вміст з. Це робиться в основному файлі конфігурації Varnish.
# vi /etc/varnish/default.vcl
Знайдіть розділ конфігурації бекенда за умовчанням і змініть рядок “за замовчуванням”До сервер1 (або будь -яке ваше ім’я для представлення вашого вихідного сервера). Потім встановіть для порту значення 8080 (або порт прослуховування Nginx, визначений у вашому блоці сервера).
бекенд -сервер1 {.host = "127.0.0.1"; .port = "8080"; }
Для цього посібника ми працюємо Лак та Nginx на тому ж сервері. Якщо ваш веб -сервер Nginx працює на іншому хості. Наприклад, інший сервер з адресою 10.42.0.247, потім встановіть .host
параметр, як показано.
бекенд -сервер1 {.host = "10.42.0.247"; .port = "8080"; }
Збережіть файл і закрийте його.
14. Далі потрібно перезавантажити systemd конфігурації менеджера через останні зміни у файлі служби Varnish, а потім перезапустіть службу Varnish, щоб застосувати зміни наступним чином.
# systemctl демон-перезавантаження. # systemctl перезавантажте лак.
15. Тепер підтвердьте це Nginx та Лак слухають у налаштованому TCP розетки.
# ss -tpln.
16. Далі перевірте, чи веб -сторінки обслуговуються через Кеш для лаків наступним чином. Відкрийте веб -браузер і перейдіть за допомогою IP -адреси сервера або FDQN, як показано на наведеному нижче знімку екрана.
http://www.tecmin.lan. АБО. http://10.42.0.144.
17. Як варіант, використовуйте команда curl як показано. Використовуйте IP -адресу свого сервера або повну доменну назву веб -сайту або 127.0.0.1 або localhost, якщо ви тестуєте локально.
# завиток -І http:///www.tecmint.lan.
18. У цьому останньому розділі ми коротко опишемо деякі корисні утиліти Кеш для лаків поставляється з, якими ви можете керувати varnishd, доступ до журналів у пам’яті та загальної статистики тощо.
varnishadm утиліта для управління запущеним екземпляром Varnish. Він встановлює CLI -з'єднання з varnishd. Наприклад, ви можете використовувати його для переліку налаштованих бекендів, як показано на наступному знімку екрана (прочитайте людина varnishadm для отримання додаткової інформації).
# varnishadm. varnish> backend.list.
varnishlog утиліта надає доступ до конкретних даних запиту. Він пропонує інформацію про конкретних клієнтів та запити (прочитайте man varnishlog для отримання додаткової інформації).
# varnishlog.
А. varnishstat також відомий як статистика лаків, що дає вам огляд поточної продуктивності Varnish, забезпечуючи доступ до пам’яті таку статистику, як звернення та промахи кешу, інформація про сховище, створені потоки, видалені об’єктів (читайте людина лакстат для отримання додаткової інформації).
# varnishstat
А. лакове покриття утиліта читає журнали спільної пам'яті та представляє постійно оновлюваний список найчастіше зустрічаються записів журналу (читайте людина varnishtop для отримання додаткової інформації).
# лакстоп
А. лакист(історія лаків) утиліта аналізує журнали лаку та виводить постійно оновлювану гістограму, що показує розподіл останніх n запити шляхом їх обробки (читайте людина лакист для отримання додаткової інформації).
# лакист.
Це все! У цьому посібнику ми показали, як встановити Кеш для лаків і запустіть його перед Nginx HTTP сервер для прискорення доставки веб -вмісту CentOS/RHEL 8.
Будь -якими думками чи питаннями щодо цього посібника можна поділитися, використовуючи форму зворотного зв'язку нижче. Для отримання додаткової інформації прочитайте Документація Varnish Cache.
Основний недолік Кеш для лаків є його відсутність підтримки з боку рідних HTTPS. Для того, щоб HTTPS на своєму веб -сайті/програмі вам потрібно налаштувати проксі -сервер припинення SSL/TLS для роботи разом із Кеш для лаків для захисту вашого сайту. У наступній статті ми покажемо, як це зробити увімкнути HTTPS для кешу Varnish за допомогою Hitch на CentOS/RHEL 8.