Архитектура решения
МаркетПро состоит из двух частей, которые работают на одном сервере:
Серверная часть — 1С-Битрикс на PHP. Здесь админка, каталог, заказы, обмен с 1С — всё, что вы видите в панели управления. Она же отдаёт данные наружу через API.
Клиентская часть — приложение на Nuxt (Node.js). Это то, что видит покупатель: каталог, карточки товаров, корзина, оформление заказа. Данные она берёт у серверной части по API.
Из такого устройства следует почти всё, что отличает МаркетПро от обычного сайта на Битриксе.
Как распределяются запросы
nginx настроен так, что почти любой адрес уходит на Nuxt. Исключения — адреса, которые обслуживает Битрикс:
Адрес | Зачем |
|---|---|
| админка и служебные файлы 1С-Битрикс |
| обмен клиентской части с серверной |
| загруженные файлы: изображения, документы, файлы обмена с 1С |
| доработки решения |
| фоновые задачи решения, которые запускает cron |
| файлы, которые отдаются как есть: |
| проверка владения доменом при выпуске сертификата; исключение — файлы |
Отсюда правило: не создавайте разделов каталога и страниц с такими адресами — они не дойдут до клиентской части.
Остальные файлы из корня сайта — исходный код, настройки, служебные файлы — наружу не отдаются. Файлы, которые должны открываться по адресу сайта напрямую (robots.txt, sitemap.xml, файл подтверждения для Яндекс.Вебмастера), лежат в frontend/static: их отдаёт клиентская часть.
Что это значит на практике
Изменения появляются не сразу. Часть настроек попадает в конфигурацию клиентской части, и после сохранения её нужно пересобрать. Обычно это занимает 5–10 минут, а запускается автоматически.
Панели «Эрмитаж» нет. Править страницы прямо на сайте нельзя: публичная часть не собирается на PHP. Всё правится в админке.
Шаблон сайта не редактируется как обычно. Клиентская часть поставляется собранной, исходных компонентов на сервере нет. Внешний вид меняется настройками решения, а тонкие правки — своими стилями: Свои стили сайта.
За клиентскую часть отвечает процесс Node.js. Он работает под менеджером процессов PM2. Если сайт отдаёт «502 Bad Gateway», обычно дело в нём — см. 502 Bad Gateway.
Где что лежит на сервере
Папка | Что внутри |
|---|---|
| сайт: файлы 1С-Битрикс |
| клиентская часть на Nuxt |
| файлы, которые клиентская часть отдаёт как есть: |
|
|
| фоновые задачи решения для cron |
| конфигурация nginx для сайтов |
Пути указаны для стандартной виртуальной машины BitrixVM с одним сайтом. При нескольких сайтах корень будет в /home/bitrix/ext_www/<домен>.