Поиск по сайту:

Как установить Varnish Cache для Apache на CentOS/RHEL 8


Varnish Cache – это бесплатный, современный и высокопроизводительный ускоритель веб-приложений с открытым исходным кодом. Это быстрый обратный HTTP-прокси, который кэширует контент для повышения производительности вашего веб-сервера, сохраняя веб-контент в памяти сервера – в кеше. Он настроен для работы на исходном сервере, таком как веб-сервер Apache (HTTPD).

Когда клиент запрашивает контент, Varnish принимает запрос HTTP, отправляет запрос на исходный сервер, кэширует возвращенные объекты и отвечает на запрос клиента. В следующий раз, когда клиент запросит тот же контент, Varnish обработает его из кеша. Таким образом, это сокращает время ответа и потребление пропускной способности сети при будущих эквивалентных запросах.

Varnish также работает как маршрутизатор HTTP запросов, брандмауэр веб-приложений, балансировщик нагрузки и многое другое. Он настраивается с использованием гибкого языка конфигурации Varnish (VCL), который можно расширить с помощью модулей Varnish (также известных как VMOD). >), поддержка Edge Side Includes (ESL), сжатия и распаковки Gzip и многого другого.

В этой статье вы узнаете, как установить веб-сервер Apache HTTPD и Varnish Cache 6 на новый сервер CentOS/RHEL 8, включая настройку Varnish для запуска на сервере HTTPD.

Предпосылки:

  • Сервер с установкой CentOS 8
  • Сервер с установленным RHEL 8 с включенной подпиской Red Hat в вашей системе.

Шаг 1. Установка веб-сервера Apache на CentOS/RHEL 8

1. Начните с обновления всех установленных в системе пакетов программного обеспечения следующим образом, используя команду DNF.

dnf update

2. Затем выполните следующую команду, чтобы установить веб-сервер Apache HTTP из репозитория AppStream.

dnf install httpd

3. После завершения установки запустите службу httpd, включите ее автоматический запуск во время загрузки системы и проверьте ее статус, чтобы убедиться, что она запущена и работает, с помощью команды systemctl.

systemctl start httpd
systemctl enable httpd
systemctl status httpd

4. По умолчанию CentOS/RHEL 8 включает полностью заблокированный брандмауэр (для подтверждения запустите firewall-cmd –state). Вам необходимо открыть доступ к службе HTTP в брандмауэре, чтобы пользователи могли получать доступ к веб-сайтам или приложениям, работающим через HTTP, а также перезагрузить настройки firewalld, чтобы применить новые изменения.

firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --reload

Шаг 2. Установка Varnish Cache 6.4 на CentOS/RHEL 8

5. Теперь, когда веб-сервер Apache запущен, вы можете продолжить установку Varnish Cache в системе, используя следующую команду.

dnf module install varnish

6. После успешной установки вы можете проверить версию Varnish, установленную в вашей системе.

varnishd -V

7. Далее основной исполняемый файл устанавливается как /usr/sbin/varnishd. Кроме того, файлы конфигурации Varnish хранятся в каталоге /etc/varnish, где:

  • /etc/varnish/default.vcl – основной файл конфигурации лака, написанный с использованием VCL.
  • /etc/varnish/secret – секретный файл лака.

8. Теперь запустите службу лака, а пока включите ее автоматический запуск во время загрузки системы в случае перезапуска сервера и проверьте ее статус, чтобы убедиться, что она работает, следующим образом.

systemctl start varnish
systemctl enable varnish
systemctl status varnish

Шаг 3. Настройка Apache для работы с Varnish Cache

9. Теперь пришло время настроить Varnish Cache для работы перед службой Apache. По умолчанию сервер Apache настроен на прослушивание порта 80, это определено в основном файле конфигурации /etc/httpd/conf/httpd.conf.

Откройте его для редактирования с помощью вашего любимого текстового редактора.

vi /etc/httpd/conf/httpd.conf

Найдите параметр Listen. Чтобы запустить Varnish на сервере Apache, вам следует изменить порт по умолчанию 80 на 8080 (или любой другой порт по вашему выбору), как показано на следующем снимке экрана.

Этот порт будет позже добавлен в качестве порта внутреннего сервера в файле конфигурации Varnish.

Кроме того, конфигурация виртуального хоста для каждого веб-сайта/приложения, которое будет обслуживаться через Varnish, должна быть настроена на прослушивание указанного выше порта. Вот конфигурация нашего тестового сайта (/etc/httpd/conf.d/tecmint.lan.conf).

<VirtualHost *:8080>
    DocumentRoot "/var/www/html/tecmint.lan/"
    ServerName www.tecmint.lan
    # Other directives here
</VirtualHost>

Важно! Чтобы предотвратить использование тестовой страницы HTTP-сервера Apache по умолчанию, закомментируйте все строки в файле /etc/httpd/conf.d /welcome.conf или просто удалите файл.

rm /etc/httpd/conf.d/welcome.conf 

10. Затем проверьте синтаксис конфигурации httpd на наличие ошибок. Если все в порядке, перезапустите службу httpd, чтобы применить новые изменения.

httpd -t
systemctl restart httpd

Настройка Varnish для Systemd

11. Чтобы развернуть Varnish перед HTTPD, вам просто нужно настроить его на прослушивание клиентских запросов через HTTP-порт по умолчанию 80, как описано. ниже.

Обратите внимание, что в Varnish Cache 6.0 и более поздних версиях вам необходимо установить порт, который прослушивает лаковый сервер, в служебном файле Varnish для systemd. Сначала откройте его для редактирования.

systemctl edit --full  varnish

Найдите строку ExecStart, затем измените значение переключателя -a (который указывает лаку прослушивать адрес и порт) с :6081 до :80, как показано на следующем снимке экрана.

Важно отметить, что если вы не укажете адрес, varnishd будет прослушивать все доступные интерфейсы IPv4 и IPv6, активные на сервере.

ExecStart=/usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m

Сохраните изменения в файле и выйдите.

Настройка серверов Varnish Backend с помощью VCL

12. Теперь вам необходимо настроить исходный сервер, известный в терминологии Varnish как бэкенд. Это сервер, который понимает HTTP, с которым общается Varnish, для получения контента — в данном случае httpd. Он настраивается в основном файле конфигурации /etc/varnish/default.vcl.

vi /etc/varnish/default.vcl 

Существует раздел конфигурации backend по умолчанию, который называется default. Вы можете изменить «default» на server1 (или любое другое имя по вашему выбору, соответствующее стандартам вашей среды). По умолчанию параметр host указывает на localhost, при условии, что внутренний сервер работает на локальном хосте.

Затем установите порт 8080 (порт, который вы определили в файле конфигурации виртуального хоста Apache), как показано на снимке экрана.

backend server1 {
    .host = "127.0.0.1";
    .port = "8080";
}

Если ваш внутренний сервер работает на другом хосте, например, на другом сервере с адресом 10.42.1.10, то параметр host должен указывать на этот IP-адрес.

backend server1 {
    .host = "10.42.1.10";
    .port = "8080";
}

Сохраните файл и закройте его.

13. После внесения всех необходимых изменений, касающихся Varnish, перезагрузите конфигурацию менеджера systemd, чтобы отразить новые изменения в служебном файле Varnish, а также перезапустите. сервис Varnish для применения общих изменений.

systemctl daemon-reload
systemctl restart varnish

14. На этом этапе Varnish и Apache должны прослушивать порты 80 и 8080 соответственно. Вы можете подтвердить это с помощью команды статистики сокета.

ss -tpln

Шаг 4. Тестирование Varnish Cache и установки Apache

14. Чтобы проверить настройку Varnish Cache-HTTPD, откройте веб-браузер и перейдите по серверу с IP или FQDN. Strong>, как показано на следующем снимке экрана.

http://10.42.0.144
OR
http://www.tecmin.lan

Затем проверьте, обслуживаются ли веб-страницы через Varnish Cache, следующим образом. Проверьте заголовки HTTP, щелкнув правой кнопкой мыши отображаемую веб-страницу, выберите Проверить, чтобы открыть инструменты разработчика, затем щелкните вкладку Сеть и перезагрузите страницу. Затем выберите запрос на просмотр заголовков HTTP, чтобы подтвердить это, как показано на следующем снимке экрана.

Альтернативно вы можете запустить следующую команду Curl, чтобы проверить это.

curl -I http:///10.42.0.144
OR
#curl -I http:///www.tecmint.lan

Полезные служебные программы Varnish Cache

15. Давайте закончим это руководство рассмотрением некоторых полезных программ, входящих в состав дистрибутива Varnish Cache. Они включают утилиты для администрирования кэша лака, отображения подробных записей журнала и просмотра статистики производительности лака, как описано ниже.

лакадм

Первый — varnishadm, который используется для администрирования работающего экземпляра Varnish. Он устанавливает соединение с varnishd через интерфейс командной строки. Это может повлиять на работающий экземпляр Varnish, запуская и останавливая varnishd, изменяя параметры конфигурации, перезагружая VCL, выводя список серверных частей и т. д.

varnishadm
> backend.list

Для получения дополнительной информации прочтите manlacadm.

лаковое бревно

Следующая программа — varnishlog, которая используется для доступа к данным, специфичным для запроса (т. е. информации о конкретных клиентах и запросах). Он предоставляет большие объемы информации, поэтому обычно ее необходимо фильтровать.

varnishlog

Для получения дополнительной информации прочтите man Laclog.

лакстат

У нас также есть varnishstat (varnish статистика), который используется для доступа к общей статистике, такой как общее количество запросов, количество объектов и т. д.

varnishstat

Для получения дополнительной информации прочитайте man LacStat.

лактоп

Затем у нас есть varnishtop — утилита, которая читает журнал Varnish и представляет постоянно обновляемый список наиболее часто встречающихся записей журнала.

varnishtop 

Для получения дополнительной информации прочитайте manlactop.

лакхист

Еще одна полезная утилита — varnishhist (varnish History). Она читает журналы Varnish и представляет постоянно обновляемую гистограмму, показывающую распределение последних N запросов по их обработка.

varnishhist

Для получения дополнительной информации прочитайте manlachist.

Вот оно! Вы успешно развернули Varnish Cache для ускорения обработки контента вашего веб-приложения с помощью сервера Apache HTTP на CentOS/RHEL 8.

Если у вас есть какие-либо вопросы по этой теме или мысли, которыми вы хотите поделиться, воспользуйтесь формой обратной связи ниже. Дополнительную информацию можно найти в документации Varnish Cache 6.0.

Если вы хотите включить HTTPS на своем сайте, прочтите нашу следующую статью, в которой будет показано, как включить SSL/TLS для Varnish Cache с помощью Hitch в CentOS/RHEL 8.