Как настроить полностраничное кэширование в CS-Cart

Важно

Этот модуль доступен начиная с “Multi-Vendor(CS-Cart для маркетплейсов) Бизнес” или “CS-Cart для интернет-магазинов Unlim”

Модуль “Ускорение сайта” работает в сочетании с Varnish Cache — бесплатным программным обеспечением, которое служит в качестве обратного прокси-сервера кэширования. Подробнее о Varnish можно почитать вот тут:

Важно

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

Шаг 1. Установите Varnish

Модуль поддерживает Varnish 4.1 и более новые версии, такие как 6.2. Чтобы установить Varnish, обратитесь к следующим статьям:

Varnish должен прослушивать порт 80 и обрабатывать все HTTP-соединения.

Шаг 2. Настройте Varnish and Веб-сервер

2.1. Настройка обратного прокси-сервера для HTTPS

Varnish не поддерживает HTTPS, поэтому если ваш магазин использует SSL-сертификат, ему понадобится обратный прокси-сервер для работы с Varnish. Любой веб-сервер может работать как обратный прокси, но мы рекомендуем nginx.

Обратный прокси-сервер должен прослушивать порт 443 и перенаправлять трафик на порт 80 сервера Varnish. Вот пример конфигурации для nginx:

server {
    listen              443 ssl;
    server_name         example.com;
    server_name         www.example.com;

    ssl_certificate     /etc/nginx/certs/example.com.crt;
    ssl_certificate_key /etc/nginx/certs/example.com.key;

    location / {
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_pass http://127.0.0.1;
        proxy_read_timeout 90;
    }
}

2.2. Настройте серверную часть

Задача бэкенд-сервера — обрабатывать запросы от сервера Varnish. Для этого сервер должен прослушивать порт 8080. Для настройки веб-сервера используйте следующие статьи:

2.3. Настройте Varnish

Теперь нам нужно научить Varnish правильно реагировать на ответы от бэкенд-сервера. Для этого измените файл default.vcl. В зависимости от того, как был установлен Varnish, default.vcl может находиться в разных местах:

  • /etc/varnish/default.vcl
  • /usr/local/etc/varnish/default.vcl

Замените тот файл на our default.vcl for Multi-Vendor.

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

  • Адрес бэкенд-сервера:

    backend default {
        .host = "127.0.0.1";
        .port = "8080";
    }
    
    • host — IP-адрес сервера во внутренней сети.
    • port — порт, который слушает бэкенд-сервер.
  • Настройки безопасности:

    acl internal {
        "127.0.0.1";
    }
    

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

    Важно

    Запросы на инвалидацию кэша отправляются скриптом PHP. Если вы обрабатываете PHP на отдельном сервере, то его IP-адрес должен быть добавлен в этот список.

Шаг 3. Настройте и установите модуль Ускорение сайта

Модуль Ускорение сайта устанавливается как любой другой модуль.

По умолчанию модуль уже настроен. Он ожидает, что Varnish установлен на том же сервере, что и CS-Cart. Если это не так, то откройте настройки модуля и укажите IP-адрес сервера Varnish в поле Хост.

Чтобы включить полностраничное кэширование, просто активируйте модуль.

Примечание

Во время активации модуль попытается инвалидировать кэш. Если все работает, модуль активируется. В противном случае вам нужно будет проверить настройки модуля и Varnish Cache.