Как установить Varnish на Ubuntu 22.04

В этом руководстве мы собираемся показать вам, как установить Varnish на Ubuntu 22.04. Кэш Varnish – это ускоритель веб-приложений, который используется в качестве кэширующего HTTP обратного прокси. Кэш varnish имеет много преимуществ по сравнению с другими программами кэширования и может ускорить доставку до 1000 раз. Varnish предлагает множество функций, таких как частная CDN, сжатие и декомпрессия Gzip, потоковая передача HTTP & fetch и т.д.

Здесь для установки мы собираемся настроить его на веб-сервере Apache. Этот процесс очень прост и может занять не более 20 минут. Давайте начнем!

Предварительные условия

  • Свежая установка Ubuntu 22.04
  • Привилегии пользователя: root или не-root пользователь с привилегиями sudo

Шаг 1. Обновление системы

Если у вас свежая установка Ubuntu 22.04, обновите системные пакеты до последних доступных версий.

sudo apt update -y && sudo apt upgrade -y

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

Сначала мы добавим репозиторий Varnish, поскольку он не существует в репозитории Varnish по умолчанию.

tee /etc/apt/sources.list.d/varnishcache_varnish70.list > /dev/null <<-EOF
deb https://packagecloud.io/varnishcache/varnish70/ubuntu/ focal main
deb-src https://packagecloud.io/varnishcache/varnish70/ubuntu/ focal main
EOF

После добавления обновите систему

sudo apt-update -y

Установите кэш varnish с помощью команд ниже:

sudo apt install varnish -y

После установки запустите и включите службу.

sudo systemctl start varnish && sudo systemctl start varnish

Для проверки работоспособности службы введите следующую команду:

sudo systemctl status varnish

Вы должны получить следующий результат:

root@host:~# systemctl status varnish
● varnish.service - Varnish Cache, a high-performance HTTP accelerator
     Loaded: loaded (/lib/systemd/system/varnish.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2022-09-21 16:13:26 CDT; 1 week 5 days ago
       Docs: https://www.varnish-cache.org/docs/
             man:varnishd
   Main PID: 2449 (varnishd)
      Tasks: 217 (limit: 4575)
     Memory: 92.4M
        CPU: 11min 37.355s
     CGroup: /system.slice/varnish.service
             ├─2449 /usr/sbin/varnishd -j unix,user=vcache -F -a :6081 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256m
             └─2471 /usr/sbin/varnishd -j unix,user=vcache -F -a :6081 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256m

По умолчанию служба varnish работает на порту 6081. Вы можете проверить это с помощью следующей команды:

netstat -tunlp | grep 6081

Вы должны получить следующий результат:

root@host:~# netstat -tunlp | grep 6081
tcp        0      0 0.0.0.0:6081            0.0.0.0:*               LISTEN      2449/varnishd
tcp6       0      0 :::6081                 :::*                    LISTEN      2449/varnishd

Это еще одно доказательство того, что кэш varnish успешно установлен и служба запущена.

Шаг 3. Установите Apache2

Сначала нам нужно установить веб-сервер Apache для последующей настройки Varnish. Для установки веб-сервера Apache выполните следующую команду:

sudo apt install apache2 -y

Для запуска и включения службы Apache выполните следующую команду:

sudo systemctl start apache2 && sudo systemctl enable apache2

Для проверки состояния службы:

sudo systemctl status apache2

Вы должны получить следующее сообщение:

root@host:~# sudo systemctl status apache2
● apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2022-09-21 15:52:40 CDT; 1 week 5 days ago
       Docs: https://httpd.apache.org/docs/2.4/
   Main PID: 767 (apache2)
      Tasks: 55 (limit: 4575)
     Memory: 13.9M
        CPU: 1min 15.604s
     CGroup: /system.slice/apache2.service
             ├─   767 /usr/sbin/apache2 -k start
             ├─123603 /usr/sbin/apache2 -k start
             └─123604 /usr/sbin/apache2 -k start

По умолчанию служба Apache работает на порту 80. Чтобы изменить порт Apache с 80 на 8080, откройте файл /etc/apache2/ports.conf вашим любимым текстовым редактором и измените Listen 80 на Listen 8080 следующим образом:

Listen 8080 

Сохраните файл, закройте его и перезапустите службу Apache.

sudo systemctl restart apache2
.

Чтобы проверить, все ли в порядке, выполните следующую команду:

netstat -tunlp | grep apache2
root@host:# netstat -tunlp | grep apache2
tcp6       0      0 :::8080                 :::*                    LISTEN      127811/apache2 

Шаг 4. Настройка кэша Varnish

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

Откройте файл /lib/systemd/system/varnish.service и измените порт на 80, а размер кэша на 1 ГБ следующим образом:

ExecStart=/usr/sbin/varnishd \
          -j unix,user=vcache \
          -F \
          -a :80 \
          -T localhost:6082 \
          -f /etc/varnish/default.vcl \
          -S /etc/varnish/secret \
          -s malloc,1g

Сохраните файл, закройте его и перезагрузите демон и перезапустите службу Varnish.

sudo systemctl daemon-reload && sudo systemctl restart varnish service

Далее необходимо проверить бэкенд кэша Varnish. Откройте файл /etc/varnish/default.vcl и проверьте, затронуты ли изменения в этом файле. Строки должны выглядеть следующим образом:

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

Перезапустите службы Apache и Varnish снова:

sudo systemctl restart apache2 varnish

В заключение проверьте с помощью команды curl, правильно ли работает Varnish:

curl -I *YourIPAddressHere*
root@host:/etc/apache2# curl -I YourIPAddressHere
HTTP/1.1 200 OK
Date: Tue, 04 Oct 2022 14:05:59 GMT
Server: Apache/2.4.52 (Ubuntu)
Last-Modified: Wed, 21 Sep 2022 20:51:19 GMT
Vary: Accept-Encoding
Content-Type: text/html
X-Varnish: 2
Age: 0
Via: 1.1 varnish (Varnish/6.6)
ETag: W/"119c-5e9361b575472-gzip"
Accept-Ranges: bytes
Connection: keep-alive

Поздравляем! Вы успешно установили и настроили кэш Varnish на Ubuntu 22.04

Комментарии (0)