Как настроить полностраничное кэширование в CS-Cart¶
Важно
Этот модуль доступен начиная с “Multi-Vendor(CS-Cart для маркетплейсов) Бизнес” или “CS-Cart для интернет-магазинов Unlim”
Модуль “Ускорение сайта” работает в сочетании с Varnish Cache — бесплатным программным обеспечением, которое служит в качестве обратного прокси-сервера кэширования. Подробнее о Varnish можно почитать вот тут:

Важно
Настройка Varnish Cache требует опыта и включает в себя множество шагов. Лучше всего доверить это администратору сервера. Вот почему в этой статье приведены ссылки, а не пошаговые инструкции.
Шаг 1. Установите Varnish¶
Модуль поддерживает Varnish 4.1 и более новые версии, такие как 6.2. Чтобы установить Varnish, обратитесь к следующим статьям:
- Официальная документация Varnish
- Установите Varnish на порт 80
- Установите Varnish 4.1 на Ubuntu
- Как установить Varnish (Tecmint)
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.