我开发了节点rest和vuejs web应用程序,我试图将这两个项目部署到一个运行ubuntu的aws服务器上。这两个应用程序都有不同的端口,我尝试为api配置api.example.com,为vue应用配置example.com。在SSH中运行命令之后,我可以运行这两个应用程序一次,但我需要它们永远运行它。我所做的,
我需要他们进入
要做的步骤是什么,任何更改主机文件。
发布于 2018-09-17 16:20:11
这就是我们在同一个服务器上运行VueJS UI和ExpressJS REST的方式。
我们正在使用PM2管理我们的服务。
VueJS (开发环境,您可以向生产添加相同的设置)
在package.json中,添加"start": "HOST='0.0.0.0' PORT=80 npm run dev", (其中80是VueJS正在监听的端口)到"scripts": {..}数组。然后,在安装PM2之后,(对于dev)我们可以使用cd /location/of/vue/root; sudo pm2 start npm run dev --name Vue -- start启动VueJS。(确保Apache没有运行)。
请注意,将主机设置为0.0.0.0很重要。不要将其设置为LocalHost或您的服务器IP地址,否则可能会遇到问题。
ExpressJS
在/location/of/express/app.js中添加类似于文件:app.listen(process.env.PORT || 8081)底部的内容,其中8081是REST应该监听的端口。然后我可以从sudo pm2 start /location/of/express/app.js --name Express开始
此时,VueJS应该在www.example.com (隐含端口80)上可用,REST将在www.example.com:8081上可用。
如果您希望api.example.com/指向API,则需要确保DNS将"api“子域指向所需的端口,或者您可能必须将端口添加到上面的URL中。
此外,您还可以轻松地通过PM2跟踪日志,也可以使用pm2 logs APPNAME --lines 100跟踪日志。
发布于 2019-01-10 22:32:34
我找到了另一种方法在一台服务器上部署vue应用程序和express/nodejs,而不使用PM。这就是我所做的
npm run build命令构建vue代码。这将创建一个文件夹dist,其中应该有index.html文件和static文件夹。dist文件夹复制到服务器代码存储库中。在我的例子中,我创建了一个文件夹public,并将dist文件夹移动到public中。app.js文件中,在module.exports=app行之前复制以下代码行
//These 2 lines make sure that vue and express app are coming from the same server. app.use('/static', express.static(path.join(__dirname,"../public/dist/static/"))); app.get('/', function(req,res) { res.sendFile('index.html', { root: path.join(__dirname, '../public/dist/') }); });第一行确保/static文件夹是可访问的,第二行在运行节点服务器时将服务于index.html文件。组件之间的路由将由vue负责。
https://stackoverflow.com/questions/52369607
复制相似问题