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

Установите Varnish Cache 5.2 для повышения производительности Apache на CentOS 7


Varnish Cache (широко известный как Varnish) – это популярный ускоритель HTTP с обратным прокси-сервером и открытым исходным кодом, предназначенный для ускорения работы веб-серверов. Он разработан для чрезмерно используемых конечных точек API, а также для динамических сайтов, которые обслуживают большой объем контента и имеют высокий трафик.

По сути, это помогает снизить нагрузку на процессор; поддерживает балансировку нагрузки на веб-серверах и позволяет веб-браузеру быстро загружать сайты за счет хранения кеша в оперативной памяти. Его используют многие крупные компании, включая Facebook, Twitter и Википедию, и это лишь некоторые из них.

Требования

  1. CentOS 7 с установленным Apache
  2. CentOS 7 со статическим IP-адресом

В этой статье я объясню, как установить и использовать Varnish Cache 6.5 в качестве внешнего интерфейса для веб-сервера Apache в CentOS 7 ( также работает на RHEL 7).

Шаг 1. Установите веб-сервер Apache на CentOS 7.

1. Сначала установите HTTP-сервер Apache из репозиториев программного обеспечения CentOS по умолчанию с помощью менеджера пакетов YUM следующим образом.

yum install httpd

2. После установки Apache запустите его на время и включите автоматический запуск при загрузке системы.

systemctl start httpd
systemctl enable httpd
systemctl status httpd

3. Затем обновите правила системного брандмауэра, чтобы разрешить входящие пакеты через порт 80, используя приведенные ниже команды.

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

Шаг 2. Установите Varnish Cache на CentOS 7.

4. Теперь существуют предварительно скомпилированные пакеты RPM для последней версии Varnish Cache 6 (т. е. 6.5 на момент написания), поэтому вам необходимо добавить официальный репозиторий Varnish Cache.

Перед этим вам необходимо включить репозиторий EPEL для установки нескольких пакетов зависимостей, как показано.

yum install -y epel-release

5. Затем установите pygpgme, пакет для обработки подписей GPG и yum-utils, набор полезных утилит, которые различными способами расширяют встроенные функции yum.

yum install pygpgme yum-utils

6. Теперь создайте файл с именем /etc/yum.repos.d/varnishcache_varnish65.repo, содержащий приведенную ниже конфигурацию репозитория.

vi /etc/yum.repos.d/varnishcache_varnish65.repo

Важно! Обязательно замените el и 7 в конфигурации ниже на свой дистрибутив и версию Linux:

[varnishcache_varnish65]
name=varnishcache_varnish65
baseurl=https://packagecloud.io/varnishcache/varnish65/el/7/$basearch
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/varnishcache/varnish65/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300

[varnishcache_varnish65-source]
name=varnishcache_varnish65-source
baseurl=https://packagecloud.io/varnishcache/varnish65/el/7/SRPMS
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/varnishcache/varnish65/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300

7. Теперь выполните команду ниже, чтобы обновить локальный кеш yum и установить пакет лакового кеша (не забудьте принять ключ GPG, набрав y или yes). при установке пакета):

yum -q makecache -y --disablerepo='*' --enablerepo='varnishcache_varnish65'
yum install varnish 

8. После установки Varnish Cache основной исполняемый файл будет установлен как /usr/sbin/varnishd, а файлы конфигурации лака расположены в >/etc/varnish/:

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

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

systemctl start varnish
systemctl enable varnish
systemctl status varnish

10. Вы можете подтвердить, что установка Varnish прошла успешно, увидев расположение исполняемого файла Varnish и его версию, установленную в вашей системе.

which varnishd
varnishd -V
Пример вывода
varnishd (varnish-6.5.1 revision 1dae23376bb5ea7a6b8e9e4b9ed95cdc9469fb64)
Copyright (c) 2006 Verdens Gang AS
Copyright (c) 2006-2020 Varnish Software

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

11. Теперь настройте Apache для работы совместно с Varnish Cache. По умолчанию Apache прослушивает порт 80, вам необходимо изменить порт HTTPD по умолчанию на 8080 – это гарантирует, что HTTPD будет работать за кешированием Varnish.

Вы можете использовать команду sed, чтобы изменить порт 80 на 8080, как показано.

sed -i "s/Listen 80/Listen 8080/" /etc/httpd/conf/httpd.conf

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

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

12. Затем откройте файл конфигурации лака systemd и найдите параметр ExecStart, который указывает порт, который прослушивает Varnish, и измените его значение с 6081. до 80, как показано на снимке экрана.

systemctl edit --full  varnish

После завершения конфигурация должна выглядеть так.

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

13. Затем настройте Apache в качестве внутреннего сервера для прокси-сервера Varnish в файле конфигурации /etc/varnish/default.vcl.

vi /etc/varnish/default.vcl 

Найдите раздел backend и определите IP-адрес и порт хоста. Ниже приведена конфигурация серверной части по умолчанию. Установите ее так, чтобы она указывала на ваш фактический контент-сервер.

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

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

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

14. После выполнения всех необходимых настроек перезапустите HTTPD и кэш Varnish, чтобы изменения вступили в силу.

systemctl daemon-reload
systemctl restart httpd
systemctl restart varnish

Шаг 4. Проверьте Varnish Cache на Apache

15. Наконец, проверьте, включен ли Varnish и работает ли он со службой HTTPD, используя приведенную ниже команду cURL, которую можно использовать для просмотра HTTP-заголовка.

curl -I http://localhost
Пример вывода
HTTP/1.1 200 OK
Date: Wed, 06 Jan 2021 08:36:07 GMT
Server: Apache/2.4.6 (CentOS)
Last-Modified: Thu, 16 Oct 2014 13:20:58 GMT
ETag: "1321-5058a1e728280"
Accept-Ranges: bytes
Content-Length: 4897
Content-Type: text/html; charset=UTF-8
X-Varnish: 131085
Age: 0
Via: 1.1 varnish (Varnish/6.5)
Connection: keep-alive

Для получения дополнительной информации посетите репозиторий Varnish Cache Github: https://github.com/varnishcache/varnish-cache.

В этом руководстве мы объяснили, как настроить прокси-сервер Varnish Cache 6.5 для HTTP-сервера Apache в CentOS 7. Если у вас есть какие-либо вопросы или дополнительные идеи, которыми вы можете поделиться, воспользуйтесь формой обратной связи ниже, чтобы написать нам. .