Sam*_*dha 7 javascript amazon-ec2 web-deployment node.js vue.js
我已经开发了 node rest api 和 vuejs Web 应用程序,我试图将这两个项目部署到一个运行 ubuntu 的 aws 服务器中。两个应用程序都有不同的端口,域我尝试为 api 配置 api.example.com,为 vue 应用程序配置 example.com。在 SSH 中运行命令后,我可以运行这两个应用程序一次,但我需要它们永远运行它。我做了什么,
我需要他们访问
要做什么步骤,任何更改主机文件。
小智 9
我找到了另一种无需使用 PM 即可在一台服务器上部署 vue app 和 express/nodejs 的方法。这是我所做的
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 处理。
这就是我们从同一服务器运行 VueJS UI 和 ExpressJS REST API 的方式。
我们使用PM2管理我们的服务。
VueJS(开发环境,您可以将相同的设置添加到生产环境)
在package.jsonadd中"start": "HOST='0.0.0.0' PORT=80 npm run dev",,其中 80 是 VueJS 正在侦听数组的端口"scripts": {..}。然后,安装 PM2 后,(对于开发人员)我们可以使用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文件底部添加类似于: 的内容
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.
| 归档时间: |
|
| 查看次数: |
12140 次 |
| 最近记录: |