Вот так мы запускаем наш интерфейс VueJS UI и ExpressJS REST API с одного и того же сервера.
Мы управляем нашими услугами с PM2 .
VueJS (среда разработки, вы можете добавить те же настройки в производство)
В package.json
добавить "start": "HOST='0.0.0.0' PORT=80 npm run dev",
, где 80 - это порт, который VueJS прослушивает, в массив "scripts": {..}
.Затем, после установки PM2, (для dev) мы можем запустить VueJS с cd /location/of/vue/root; sudo pm2 start npm run dev --name Vue -- start
.(Убедитесь, что Apache не работает).
Обратите внимание, что установка HOST на 0.0.0.0 важна.Не устанавливайте для него значение LocalHost или IP-адрес сервера, иначе вы можете столкнуться с проблемами.
ExpressJS
В поле /location/of/express/app.js
добавьте это аналогично нижней частиfile:
app.listen(process.env.PORT || 8081)
, где 8081 - это порт, который должен прослушивать REST API.Затем я могу запустить его с sudo pm2 start /location/of/express/app.js --name Express
. На этом этапе VueJS должен быть доступен на www.example.com (подразумевается порт 80), а REST API будет доступен на www.example.com:8081..
Если вы хотите, чтобы api.example.com/ указывал на API, вам нужно убедиться, что ваш DNS указывает субдомен «api» на нужный порт, или вам, возможно, придется добавитьпорт в URL, как указано выше.
Кроме того, вы можете легко следить за журналами через PM2, а также pm2 logs APPNAME --lines 100
.