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

Как установить обратный прокси-сервер Varnish с помощью Nginx в Ubuntu 16.04 LTS


На этой странице

  1. Что мы будем делать
  2. Предпосылки
  3. Шаг 1. Установите Nginx в Ubuntu 16.04
  4. Шаг 2. Настройка Nginx на порту 8080
  5. Шаг 3. Установите Varnish в Ubuntu 16.04
  6. Шаг 4. Настройте Varnish в качестве обратного прокси-сервера для Nginx
  7. Шаг 5. Настройка брандмауэра UFW
  8. Шаг 6. Тестирование
  9. Справочник

Varnish — это прокси-сервер, ориентированный на кэширование HTTP. Он разработан как ускоритель HTTP и может выступать в качестве обратного прокси-сервера для вашего веб-сервера Apache или Nginx. Varnish использовался для известных веб-сайтов с высокой посещаемостью, включая Wikipedia, The Guardian и New York Times.

В этом руководстве я покажу вам, как установить и настроить ускоритель HTTP лака в качестве обратного прокси-сервера для веб-сервера Nginx. Настоящий веб-сервер Nginx будет работать с нестандартным HTTP-портом 8080. Varnish будет работать как обратный прокси-сервер на HTTP-порту 80. В этом руководстве мы будем использовать сервер Ubuntu 16.04.

Что мы будем делать

  1. Установите Nginx в Ubuntu 16.04.
  2. Настройка Nginx на порту 8080
  3. Установка Varnish в Ubuntu 16.04
  4. Настройка Varnish в качестве обратного прокси-сервера для Nginx
  5. Настройка брандмауэра UFW
  6. Тестирование

Предпосылки

  • Убунту 16.04
  • Привилегии root

Шаг 1. Установите Nginx в Ubuntu 16.04.

Первый шаг, который мы должны сделать для этого руководства, — установить Nginx в систему Ubuntu 16.04. На этом этапе мы установим Nginx (он доступен в официальном репозитории Ubuntu), затем запустим службу, а затем разрешим ее запуск каждый раз при загрузке системы.

Установите Nginx из репозитория Ubuntu с помощью команды apt.

sudo apt install nginx -y

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

systemctl start nginx
systemctl enable nginx

Веб-сервер Nginx работает на HTTP-порте по умолчанию — проверьте его с помощью netstat и убедитесь, что HTTP-порт используется Nginx.

netstat -plntu

Шаг 2. Настройте Nginx на порту 8080.

На этом этапе мы настроим nginx для работы с нестандартным HTTP-портом 8080. Для этого нам нужно отредактировать файлы виртуального хоста в каталоге, доступном для сайтов.

Перейдите в каталог конфигурации Nginx и отредактируйте файл виртуального хоста по умолчанию с помощью vim.

cd /etc/nginx/
vim sites-available/default

Измените значение строки прослушивания на 8080.

        listen 8080 default_server;
        listen [::]:8080 default_server;

Сохранить и выйти.

Теперь протестируйте конфигурацию Nginx и убедитесь в отсутствии ошибок. Затем перезапустите службу.

nginx -t
systemctl restart nginx

Теперь снова протестируйте nginx с помощью netstat и убедитесь, что он работает на нестандартном HTTP-порту 8080.

netstat -plntu

Веб-сервер Nginx был установлен и теперь работает на порту 8080.

Шаг 3 — Установите Varnish на Ubuntu 16.04

Теперь нам нужно установить Varnish в систему. Мы можем установить последнюю версию инструментов из источника. И для этого руководства мы будем устанавливать Varnish из репозитория Ubuntu — Varnish v4.

Установите лак с помощью приведенной ниже команды apt.

sudo apt install varnish -y

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

systemctl start varnish
systemctl enable varnish

По умолчанию вы будете использовать порт 6081 для общего доступа и порт 6082 для веб-интерфейса администратора. Проверьте это с помощью команды netstat и убедитесь, что эти порты есть в списке.

netstat -plntu

Был установлен Varnish HTTP Accelerator.

Шаг 4. Настройте Varnish в качестве обратного прокси-сервера для Nginx

В этом руководстве мы будем использовать Varnish в качестве обратного прокси-сервера для веб-сервера Nginx. Varnish будет работать на HTTP-порту 80, а веб-сервер Nginx — на HTTP-порту 8080 (это завершено).

На этом шаге мы настроим Varnish для Nginx, определим внутренний сервер, а затем изменим Varnish для работы с HTTP-портом 80.

Теперь перейдите в каталог конфигурации лака и отредактируйте файл default.vcl.

cd /etc/varnish
vim default.vcl

В строке бэкенда определите конфигурацию, как показано ниже.

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

Сохранить и выйти.

Примечание:

  • .host=адрес внутреннего веб-сервера.
  • .port=резервный веб-сервер, на котором работает.

Настройка серверной части завершена.

Далее нам нужно настроить Varnish для запуска через HTTP-порт 80. Перейдите в каталог /etc/default и отредактируйте файл конфигурации Varnish.

cd /etc/default/
vim varnish

В строке DAEMON_OPTS измените порт по умолчанию 6081 на HTTP-порт 80.

DAEMON_OPTS="-a :80 \
             -T localhost:6082 \
             -f /etc/varnish/default.vcl \
             -S /etc/varnish/secret \
             -s malloc,256m"

Сохранить и выйти.

Теперь отредактируйте файл службы лака в каталоге /lib/systemd/system. Перейдите в системный каталог systemd и отредактируйте файл лака.service.

cd /lib/systemd/system
vim varnish.service

В строке ExecStart измените порт лака 6081 на порт HTTP 80.

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,256m

Сохранить и выйти.

Перезагрузите конфигурацию systemd и перезапустите лак.

systemctl daemon-reload
systemctl restart varnish

После завершения настройки проверьте Varnish с помощью приведенной ниже команды netstat.

netstat -plntu

Убедитесь, что Varnish работает на HTTP-порту 80, как показано ниже.

Настройка Varnish в качестве обратного прокси для Nginx завершена.

Шаг 5. Настройте брандмауэр UFW.

Система Ubuntu поставляется с удобочитаемым брандмауэром по умолчанию с именем UFW. Если у вас нет пакета, установите его с помощью приведенной ниже команды apt.

sudo apt install ufw

На этом этапе мы активируем брандмауэр и откроем новые порты для SSH, HTTP и HTTPS.

Запустите приведенные ниже команды ufw.

ufw allow ssh
ufw allow http
ufw allow https

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

ufw enable

Введите y и нажмите Enter для подтверждения.

Брандмауэр UFW активирован, и HTTP, а также порт HTTPS теперь доступны из внешней сети.

Шаг 6 — Тестирование

- Тестирование с помощью cURL

Тестирование лака с помощью команды curl, чтобы мы могли видеть HTTP-заголовки с сервера.

curl -I hakase-labs.co

И вы получите результат HTTP-заголовка через: 1.1 lact-v4, как показано ниже.

- Тестирование с использованием веб-браузера

Откройте веб-браузер и введите следующий URL-адрес или адрес сервера. Мой: http://hakase-labs.co

Убедитесь, что вы получаете страницу Nginx по умолчанию, как показано ниже.

- Тестирование журнала Varnish

Varnish предоставляет несколько команд для управления и просмотра журналов. Мы будем использовать лаккса для получения журнала доступа к лаку.

varnishncsa

И вы получите результат, как показано ниже.

Установка и настройка Varnish в качестве обратного прокси для веб-сервера Nginx завершена.

Ссылка

  • https://varnish-cache.org/