SSR в продакшене в Inertia
Давайте теперь подготовим выкладку, где HTML снова рисуется на Node, но уже без dev-сервера Vite. Клиентскую и серверную части нужно собрать двумя проходами сборки, а затем держать отдельный процесс SSR, к которому Laravel обращается при каждом первом заходе.
Скрипт build в package.json
должен вызывать обычную сборку
и сборку с флагом SSR.
После деплоя артефактов
SSR-сервер поднимают Artisan-командой
inertia:start-ssr и обычно
ставят под смотритель процессов,
чтобы он перезапускался после
обновления сайта.
Давайте допишем скрипт сборки:
{
"scripts": {
"build": "vite build && vite build --ssr"
}
}
На сервере после сборки давайте выполним команду запуска SSR:
php artisan inertia:start-ssr
Пока процесс работает,
первый заход на сайт должен
отдавать полный HTML.
Остановить сервер перед
новой версией можно командой
inertia:stop-ssr,
а смотритель снова поднимет
его после деплоя.
Для публичного каталога
работников настройте
продакшен-сборку с SSR-бандлом
и опишите в инструкции деплоя
запуск фонового SSR-сервера
после npm run build.