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

Важно

Этот модуль доступен начиная с Русской версии Multi-Vendor Бизнес или Русской версии CS-Cart Максимум.

Модуль “Ускорение сайта” работает в сочетании с 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.