Хостинг бегет предоставляет множество возможностей по развертыванию проектов написанных на разных языках. В текущей статье разберемся, как развернуть проект написанный на NuxtJS на продакшене в режиме SSR.
Создание нового NodeJS сайта
Подробнее о настройке сайта под NodeJS можете прочитать в этой статье. Здесь же я кратко пройдусь по основным моментам.
Переходим в панель управления хостинга, открываем сайты, создаём новый сайт. Я для примера его назову node-test
.
Подключаемся по ssh.
Переходим в docker с помощью следующей команды:
ssh localhost -p 222
Переходим в каталог нового сайта
cd ~/node-test
Далее создаём каталог для проекта (для примера назову его www
), а также внутри него каталог tmp
. Делаем это всё следующей командой:
mkdir -p www/tmp
Создаём ссылку public
указывающую на public_html
ln -s public_html public
Директории под сайт с NuxtJS подготовлены, теперь переходим к самому NuxtJS.
Перенос проекта NuxtJS SSR на хостинг
Подготовка
Для того, чтобы запустить сайт на NuxtJS на хостинге нам потребуется установить nuxt-start. Добавляем его в проект либо через npm
либо через yarn
.
npm i nuxt-start
# ИЛИ
yarn add nuxt-start
Подготовка проекта завершена.
Теперь переносим проект на хостинг в директорию ~/node-test/www
.
Настройка
Создаём файл .htaccess
в каталоге public_html
со следующим содержимым:
PassengerNodejs /home/первая буква логина/логин/.local/bin/node # ЗАМЕНИТЬ НА СВОИ ЗНАЧЕНИЯ
PassengerAppRoot /home/первая буква логина/логин/папка сайта/название_проекта # ЗАМЕНИТЬ НА СВОИ ЗНАЧЕНИЯ
PassengerAppType node
PassengerStartupFile node_modules/nuxt-start/bin/nuxt-start.js
Теперь переходим в директорию ~/node-test/www
пересобираем проект:
node node_modules/nuxt/bin/nuxt.js build
Для того, чтобы Passenger
перечитал конфиг, необходимо создать файл tmp/restart.txt
. Cделать это нужно в директории, указанной в качестве PassengerAppRoot
в файле .htaccess
ранее.
touch tmp/restart.txt
Готово! Открываем сайт в браузере и проверяем, что всё работает.