Как установить varnish centos 7

Обновлено: 06.07.2024

Время ответа современных сайтов влияет не только на удобство для пользователей, но и повышает позицию сайта в поисковых системах. Таким образом чем быстрее пользователь или поисковый робот получит всю страничку тем лучше
Одним из решений является кеширование страниц на уровне web сервера. В этой публикации рассмотрим установку и конфигурацию программного продукта Varnish на сервере под управлением CentOS 7
Считаем, что базовая установка уже выполнена
Во всех случаях когда это возможно Varnish желательно запускать на 80 порту что бы он принимал все запросы на себя и дальше уже в зависимости от результата выдавал результат из кеша или отправлял его на бекенд. Следовательно сам бекенд (в нашем случае NGinx) нужно перекинуть на любой другой порт. Я буду использовать 8080
Для установки добавим официальный репозиторий

После этого выпулним установку необходимых компонентов

Конфигурационные файли размещаются в каталоге /etc/varnish/

Первым делом правим файл конфигурации демона /etc/varnish/varnish.params
Изменяем порт на котором будет запускаться Varnish

Далее выбираем где хранить кеш. В первом случае все данные будут храниться в файле на жестком диске. Этот вариант приемлем если на сервере малое количество оперативной памяти

Если же у нас дедик или просто мощная VPS-ка, то кеш можно разместить и в оперативке. Скорость чтения записи будет немного выше

Выбирать нужно только один вариант
Запускаем и проверяем

Имитируем простейший запрос

Бекенд пока что не настроен и Varnish не получил корректного ответа
Смотрим заголовки

Далее нужно создать(отредактировать) правила самого Varnish
Они располагаются в файле /etc/varnish/default.vcl
Минимальная рабочая конфигурация следующая

Для проверки я создал простейшую страничку вывода PHPInfo с кодом

После этого я подключаюсь на удалённый сервер и с помощью утилиты apache benchmark создаю небольшую нагрузку в 10000 запросов и 100 потоков параллельно 🙂

как видно 10к запросов одной и той же странички обработаны за 16 секунд. Результат мягко говоря неплохой
Все результаты взяты из кеша, так как после настройки я открыл страничку в браузере и она закешировалась

Такая конфигурация на живом сайте ускорила загрузку страниц с 3,5 секунд до 0,6-0,7 секунд
Быстрых вам всем загрузок 🙂


Прежде всего скачайте и установите remi репо и epel репо для этого выполните.

Теперь установим PHP с часто используемыми модулями и PHP-FPM, для этого в терминале выполните:

Теперь нужно установить Nginx

Теперь необходимо отредактировать файл конфигурации PHP-FPM и изменить пользователя и группу для Nginx:

Отредактируем файл конфигурации Nginx и установим (поменяем) порт на 8080, затем установить (пропишем) правильный путь к файлу сокету PHP-FPM:

Содержание у меня следующее:

Установим varnish на CentOS

Для того чтобы это сделать нужно добавить репозиторий и выполнить yum команду для установки, сделать это можно так:

Если вы находитесь на совместимый дистрибутив, используйте:

И собственно, выполняем установку:

Приводим к виду:

Отредактируем стандартный конфиг и добавим некоторые изменения:

Вот готовый конфиг, у меня выглядит следующим образом (скачайте его, при необходимости):

Или просмотреть его можно тут:
default.vcl

Если вы хотите внести изменения в конфигурацию лаком, проверить изменения конфигурации до перезагрузки лак с помощью следующей команды:

И еще один тест:

Проверим на корректную работу:

Включим логирование для ваниша: Логи важны для любой службы, поэтому мы включим ведение журнала. На примере CentOS 7.

Перезапуск varnishncsa.

Перезапуск varnishlog.

Вы должны увидеть два лог-файла:

Добавим еще 1 лог файл:

Теперь вы готовы пойти, начать PHP-FPM, Nginx и ваниш.

Для CentOS/RHEL 6.x и так же Fedora от 15 до 20:

Добавим ваниш в автозагрузку системы следующей командой:

Для CentOS/RHEL 7.x и Fedora 21

Добавим ваниш в автозагрузку системы следующей командой:

Добавим (пробросим) нужные порты в iptables:

Сохраняем файл и перезапускаем iptables:

Настроим SELinux ( розрешим подключение на определенный порт):

Если Вы хотите добавить сервисы nginx php-fpm в автозагрузку, то прочитайте мою статью. На этом установка Nginx с PHP-FPM и Varnish на CentOS завершена.

Добавить комментарий Отменить ответ

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Прежде чем вы начнете, вам понадобится полностью обновленный сервер Ubuntu Linux и учетная запись пользователя sudo.

Быстрая установка (Debian-like)

Быстрая установка (Redhat-like (CentOS, Redhat, Oracle, etc))

Python

Ручная установка на Ubuntu 20

Установим Apache

Обновим локальный индекс пакетов.

Настроим брандмауэр для разрешения трафика.

Настраиваем Apache

Измените порт по умолчанию в Apache с 80 на 8080.

Если вы добавите больше сайтов позже, вам необходимо вручную изменить их порты в соответствующих файлах в каталоге /etc/apache2/sites-available/.

Убедитесь, что Apache прослушивает порт 8080.

Установим Varnish

Вы должны добавить официальный репозиторий кэша Varnish для установки LTS-версии Varnish, поскольку репозиторий Ubuntu по умолчанию содержит более старые, неподдерживаемые версии.

Добавьте необходимые зависимости.

Установите ключ GPG для пакета.

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

Добавьте в файл следующее содержимое.

Обновите локальный индекс пакетов.

Настраиваем Varnish

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

Откройте файл конфигурации Varnish по умолчанию.

Убедитесь, что раздел серверной части по умолчанию указывает на localhost (127.0.0.1) на порту 8080.

Сохраните и закройте файл.

Настройте Varnish для прослушивания через порт 80 вместо значения по умолчанию 6081.

Создайте каталог для пользовательского файла конфигурации.

Добавьте в файл следующее содержимое.

Добавьте в файл следующее содержимое.

Убедитесь, что Varnish прослушивает порт 80.

Тестируем Varnish

Расширенные настройки Varnish

Как использовать кэширование браузера для медиафайлов

Откройте файл Varnish default.vcl.

Найдите подраздел vcl_backend_response и добавьте следующее.

Это указывает браузеру пользователя кэшировать файлы png, gif, jpg, swf, css и js в течение 30 дней.

Как очистить кэш

Если вам нужно очистить кэш лака вручную, вы можете очистить весь кэш с помощью:

Поиск и устранение неисправностей

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


Прежде всего скачайте и установите remi репо и epel репо для этого выполните.

Теперь установим PHP с часто используемыми модулями и PHP-FPM, для этого в терминале выполните:

Теперь нужно установить Nginx

Теперь необходимо отредактировать файл конфигурации PHP-FPM и изменить пользователя и группу для Nginx:

Отредактируем файл конфигурации Nginx и установим (поменяем) порт на 8080, затем установить (пропишем) правильный путь к файлу сокету PHP-FPM:

Содержание у меня следующее:

Установим varnish на CentOS

Для того чтобы это сделать нужно добавить репозиторий и выполнить yum команду для установки, сделать это можно так:

Если вы находитесь на совместимый дистрибутив, используйте:

И собственно, выполняем установку:

Приводим к виду:

ПРИМЕЧАНИЕ: Значение Malloc является «Выделить блок памяти», по этому добавим данный блок памяти:

Отредактируем стандартный конфиг и добавим некоторые изменения:

Вот готовый конфиг, у меня выглядит следующим образом (скачайте его, при необходимости):

Или просмотреть его можно тут:

Если вы хотите внести изменения в конфигурацию лаком, проверить изменения конфигурации до перезагрузки лак с помощью следующей команды:

И еще один тест:

Проверим на корректную работу:

Включим логирование для ваниша: Логи важны для любой службы, поэтому мы включим ведение журнала. На примере CentOS 7.

Перезапуск varnishncsa.

Перезапуск varnishlog.

Вы должны увидеть два лог-файла:

Добавим еще 1 лог файл:

Теперь вы готовы пойти, начать PHP-FPM, Nginx и ваниш.

Для CentOS/RHEL 6.x и так же Fedora от 15 до 20:

Добавим ваниш в автозагрузку системы следующей командой:

Для CentOS/RHEL 7.x и Fedora 21

Добавим ваниш в автозагрузку системы следующей командой:

Добавим (пробросим) нужные порты в iptables:

Сохраняем файл и перезапускаем iptables:

Настроим SELinux ( розрешим подключение на определенный порт):

Если Вы хотите добавить сервисы nginx php-fpm в автозагрузку, то прочитайте мою статью. На этом установка Nginx с PHP-FPM и Varnish на CentOS завершена.

Читайте также: