Как ускорить 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.
Что мы будем делать
- Установите веб-сервер Apache
- Изменить порт Apache по умолчанию
- Установить Varnish
- Настроить Varnish
- Проверьте настройку
Предпосылки
- Убунту 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