Как установить кеш-сервер Varnish с Nginx на Ubuntu 18.04 LTS

12 set 2022 4 min di lettura
Как установить кеш-сервер Varnish с Nginx на Ubuntu 18.04 LTS
Indice dei contenuti

Введение

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 завершена.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.