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

Как ускорить Apache с HTTP-кешем Varnish в Ubuntu 16.04 LTS


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

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

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

  1. Установите веб-сервер Apache
  2. Изменить порт Apache по умолчанию
  3. Установить Varnish
  4. Настроить Varnish
  5. Проверьте настройку

Предпосылки

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

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

Для начала установите веб-сервер Apache. По умолчанию он доступен в репозитории Ubuntu.

Обновите репозиторий Ubuntu, а затем установите Apache с помощью команды apt.

sudo apt update
sudo apt install -y apache2

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

systemctl start apache2
systemctl enable apache2

Веб-сервер Apache установлен.

Затем, чтобы разрешить всем доступ к веб-серверу, мы должны разрешить HTTP и HTTPS в нашем правиле брандмауэра. По умолчанию Ubuntu поставляется с пакетом брандмауэра под названием UFW.

Откройте новые порты SSH, HTTP и HTTPS, используя следующие команды ufw.

ufw allow ssh
ufw allow http
ufw allow https

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

ufw enable

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

Открыты новые порты для http, https и ssh, и они доступны из-за пределов сети.

Если вы хотите протестировать веб-сервер Apache, вы можете использовать команду netstat и убедиться, что Apache работает через порт 80.

netstat -plntu

Или вы можете использовать следующую команду curl.

curl -I hakase-labs.co

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

Шаг 2. Измените порт Apache по умолчанию

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

Чтобы изменить порт apache по умолчанию, нам нужно отредактировать конфигурацию apache ports.conf и всю конфигурацию виртуального хоста в каталоге, доступном для сайтов.

Перейдите в каталог конфигурации Apache.

cd /etc/apache2

Замените порт 80 на 8080 в конфигурации Apache ports.conf и во всех файлах виртуального хоста в каталоге, доступном для сайтов. Мы можем сделать это, выполнив следующие команды sed.

sed -i -e 's/80/8080/g' ports.conf
sed -i -e 's/80/8080/g' sites-available/*

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

apachectl configtest
systemctl restart apache2

Теперь Apache работает под http портом 8080, проверьте это с помощью команды netstat, как показано ниже.

netstat -plntu

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

Итак, вы видите, что веб-сервер Apache работает на порту 8080.

Шаг 3. Установите Varnish HTTP Accelerator.

На этом этапе мы будем устанавливать Varnish из репозитория Ubuntu. И для этого руководства мы будем использовать лак 4.

Установите лак, используя следующую команду apt.

sudo apt install -y varnish

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

systemctl start varnish
systemctl enable varnish

Varnish был установлен в системе Ubuntu 16.04.

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

netstat -plntu

И вы получите порт лака по умолчанию.

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

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

- Конфигурация серверной части

Перейдите в каталог конфигурации лака и создайте резервную копию файла по умолчанию default.vcl.

cd /etc/varnish/
cp default.vcl default.vcl.aseli

Отредактируйте конфигурацию лака default.vcl с помощью редактора vim.

vim default.vcl

Определите конфигурацию серверной части в строке 16. Серверной частью для нашей установки является Apache, и он работает на порту 8080. Таким образом, конфигурация лака для нашей установки Apache должна быть следующей:

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

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

- Запуск Varnish на порту 80

Далее нам нужно изменить порты лака по умолчанию. Порты по умолчанию для лака — 6081 и 6082, и нам нужно изменить порт на http-порт 80 (только для публичного адреса).

Отредактируйте конфигурацию параметра лака в каталоге /etc/default.

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 и отредактируйте служебный файл с помощью vim.

cd /lib/systemd/system/
vim varnish.service

В строке ExecStart измените команду запуска лака, как показано ниже.

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

Теперь проверьте лак и убедитесь, что он работает на HTTP-порту 80.

netstat -plntu

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

Шаг 5 - Тестирование

Протестируйте с помощью команды curl.

curl -I hakase-labs.co

Убедитесь, что вы получили заголовок http, как показано ниже.

При проверке из веб-браузера URL-адрес моего тестового сервера: http://hakase-labs.co/. Выберите URL вашего сервера здесь.

И мы по-прежнему получаем содержимое Apache.

Проверьте журнал лака с помощью команды лакнкса.

varnishncsa

И мы получаем лог как раз из лога доступа Apache.

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

Ссылка

  • Кэш лака
  • Апач HTTPD