Введение
Varnish Cache — это интерфейсный веб-ускоритель, который позволяет динамическим веб-сайтам справляться с большим потоком трафика. Это HTTP-прокси с обратным кэшированием, который кэширует как статический, так и динамический контент с сервера, что значительно увеличивает скорость веб-сайта и улучшает взаимодействие с пользователем.
Varnish Cache также позволяет разработчикам настраивать правила и устанавливать политики с помощью языка конфигурации Varnish, обычно называемого VCL. VCL — это программа, которая позволяет Варнишу определять, что ему следует делать с трафиком сайта. Таким образом, вы можете полностью контролировать, что вы хотите кэшировать и как.
Если вы хотите установить кеш Varnish на удаленный сервер, продолжайте читать, в противном случае, если вы хотите установить Varnish на свой локальный компьютер, пропустите первый абзац «Подключение к серверу» и прочитайте следующий.
Подключение к серверу
Чтобы получить доступ к серверу, вам нужно знать IP-адрес. Вам также потребуется пароль для аутентификации.
Чтобы подключиться к серверу как root, введите эту команду:
ssh root@IP_DEL_SERVER
Далее вам будет предложено ввести пароль пользователя root.
Если вы не используете пользователя root, вы можете войти под другим именем пользователя с помощью той же команды, а затем изменить первый параметр:
ssh VOSTRO_UTENTE@IP_DEL_SERVER
Затем вам будет предложено ввести пароль пользователя.
Теперь вы подключены к своему серверу и готовы начать установку кеша Varnish на Ubuntu 18.04 LTS.
Установите Varnish и Nginx
Пакеты Varnish и Nginx доступны в официальном репозитории Ubuntu, затем вы можете просто установить их с помощью следующей команды:
sudo apt -y install varnish nginx
Чтобы проверить статус установки, введите следующую команду:
ss -tlnf inet
Вы должны получить выходное сообщение, подобное следующему:
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 0.0.0.0:80 0.0.0.0:*
LISTEN 0 128 127.0.0.53%lo:53 0.0.0.0:*
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 0.0.0.0:6081 0.0.0.0:*
LISTEN 0 10 127.0.0.1:6082 0.0.0.0:*
- Nginx в настоящее время использует порт 80
- Varnish использует оба порта 6081 и 6082.
Настроить Nginx
Nginx будет работать как обратный прокси для Varnish, поэтому вам нужно перенастроить порт 80 по умолчанию на другой порт прослушивания, например 8080.
Давайте откроем файл конфигурации Nginx по умолчанию:
sudo nano /etc/nginx/sites-available/default
Отредактируйте записи прослушивания, изменив порт с 80 на 8080, затем:
...
server {
listen 8080 default_server;
listen [::]:8080 default_server;...
Сохраните и закройте файл.
Проверьте правильную конфигурацию Nginx:
nginx -t
Если результат положительный, перезапустите Nginx, в противном случае перечитайте предыдущие шаги. Перезапустите Nginx:
sudo service nginx reload
Проверьте правильную конфигурацию порта:
ss -tlnf inet
Вы должны получить выходное сообщение, подобное следующему:
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 0.0.0.0:8080 0.0.0.0:*
LISTEN 0 128 127.0.0.53%lo:53 0.0.0.0:*
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 0.0.0.0:6081 0.0.0.0:*
LISTEN 0 10 127.0.0.1:6082 0.0.0.0:*
Обратите внимание, что Nginx теперь использует порт 8080, а не порт 80.
Настройка кэш-сервера Varnish
Теперь нам нужно направить трафик Nginx через кеш-сервер Varnish, а затем открыть файловую службу Varnish:
sudo nano /lib/systemd/system/varnish.service
Измените порт с 6081 на 80, затем:
[Unit]
Description=Varnish HTTP accelerator
Documentation=https://www.varnish-cache.org/docs/4.1/man:varnishd
[Service]
Type=simple
LimitNOFILE=131072
LimitMEMLOCK=82000
ExecStart=/usr/sbin/varnishd -j unix,user=vcache -F -a:80 -T localhost:6082 -f /etc/varnish/defaul$
ExecReload=/usr/share/varnish/varnishreload
ProtectSystem=full
ProtectHome=true
PrivateTmp=true
PrivateDevices=true
[Install]
WantedBy=multi-user.target
Сохраните и закройте файл.
Затем измените настройки Varnish, установив порт Nginx 8080. Откройте следующий файл:
sudo nano /etc/varnish/default.vcl
Если Nginx был установлен на том же сервере, что и Varnish, не изменяйте никакие строки, в противном случае введите свой IP-адрес и порт, если они отличаются:
backend default {.host = "127.0.0.1";.port = "8080";
}
Перезапустите службу и сервер Varnish Cache:
sudo systemctl daemon-reload
sudo service varnish restart
Подтвердите правильную конфигурацию порта: сс -tlnf инет
Вы должны получить вывод, подобный следующему:
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 0.0.0.0:80 0.0.0.0:*
LISTEN 0 128 0.0.0.0:8080 0.0.0.0:*
LISTEN 0 128 127.0.0.53%lo:53 0.0.0.0:*
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 10 127.0.0.1:6082 0.0.0.0:*
Порты 80 и 8080 используются Varnish и Nginx.
Если вы используете брандмауэр Ubuntu UFW, включите необходимые порты, для получения дополнительной информации прочитайте следующее руководство: Настройка брандмауэра UFW в Ubuntu 18.04.
Тестовый кеш-сервер Varnish
Вы можете легко протестировать работу сервера Varnish с помощью команды curl. Отредактируйте команду, введя свой IP-адрес или доменное имя. Из терминала дайте следующую команду:
curl -I IP_O_DOMINIO
Вы должны получить вывод, подобный следующему:
HTTP/1.1 200 OKServer: nginx/1.14.0 (Ubuntu)
Date: Fri, 12 Apr 2019 22:23:22 GMT
Content-Type: text/html
Last-Modified: Fri, 12 Apr 2019 21:42:58 GMT
ETag: W/"5cb10662-324"
Vary: Accept-Encoding
X-Varnish: 15
Age: 0
Via: 1.1 varnish (Varnish/5.2)
Accept-Ranges: bytes
Также вы можете проверить некоторую статистику кеша Varnish с помощью команды лакстат:
sudo varnishstat
Настройка и установка Varnish Cache Server с Nginx на Ubuntu 18.04 LTS завершена.