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

Как установить Varnish Cache 5.2 для Nginx на CentOS 7


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

В этой статье мы покажем вам, как установить и использовать Varnish Cache в качестве внешнего интерфейса к HTTP-серверу Nginx в CentOS 7. Это руководство также должно работать на RHEL 7.

Требования

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

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

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

yum install nginx

2. Когда установка завершится, запустите службу Nginx и включите ее автоматический запуск при загрузке системы.

systemctl start nginx
systemctl enable nginx
systemctl status nginx

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

firewall-cmd --zone=public --permanent --add-port=80/tcp
firewall-cmd --reload
firewall-cmd --zone=public --permanent --add-port=8080/tcp
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_varnish5.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. Настройте Nginx для работы с Varnish Cache

11. На этом этапе вам необходимо настроить Nginx для работы с Varnish Cache. По умолчанию Nginx прослушивает порт 80. Вам следует изменить порт Nginx по умолчанию на 8080, чтобы он работал за кешированием Varnish.

Откройте файл конфигурации Nginx /etc/nginx/nginx.conf, найдите строку Listen 80 и измените ее на прослушивание 8080, как на сервере. блок, показанный на скриншоте ниже.

vi /etc/nginx/nginx.conf

Примечание. Это необходимо сделать во всех файлах конфигурации блоков сервера (обычно создаваемых в /etc/nginx/conf.d/) для веб-сайтов, которые вы хотите обслуживать через . >Лак.

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

systemctl edit --full  varnish

Линия должна выглядеть так, как показано.

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

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

vi /etc/varnish/default.vcl 

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

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

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

systemctl daemon-reload
systemctl restart nginx
systemctl restart varnish

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

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

curl -I http://localhost
Пример вывода
HTTP/1.1 200 OK
Server: nginx/1.16.1
Date: Wed, 06 Jan 2021 09:24:18 GMT
Content-Type: text/html
Content-Length: 4833
Last-Modified: Fri, 16 May 2014 15:12:48 GMT
ETag: "53762af0-12e1"
X-Varnish: 2
Age: 0
Via: 1.1 varnish (Varnish/6.5)
Accept-Ranges: bytes
Connection: keep-alive

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

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