Vue+Koa2 打包后进行线上部署的教程详解


Posted in Javascript onJuly 31, 2019

最近使用Vue和Koa2重构了自己的博客,过程中踩了不少坑,查了很多资料,最后总算成功上线。之后我计划围绕这个过程写一系列文章,讲讲如何用Vue+Koa2写一套网站。

而现在,先来讲讲最后一步,在写完Vue和Koa2后,如何将它们部署到线上。

1.将Vue和Koa2结合

很多人在打完包后就不知道怎么做了,毕竟后面都是后端的事情。如果你用的是Vue-cli3.0,那么打包这一步会非常简单,只需要执行一条命令即可,其它的不用关心:

npm run build

之后会生成一个dist的文件夹,将它放到Koa2目录下的public文件里,然后在Koa2的配置文件app.js里将静态资源指向这个文件夹,指向命令在我们创建Koa2框架时就已经自动生成,所以我们要做的也只是改一下文件地址就行了:

app.use(require('koa-static')(__dirname + '/public/dist'))

改好之后打开koa2的主页,看看是否加载成功,第一步就愉快地完成了。

2.Nginx配置

现在登录服务器,安装完Nginx后,在`/etc/nginx/sites-enabled/`下新建一个conf文件,然后写入配置:

//Koa的端口一般默认是3000
upstream koa.server{
  server 127.0.0.1:3000;
}

server {
  listen   80;
  server_name .******.com;

  location / {
    proxy_pass http://koa.server;
    proxy_redirect off;
  }
}

写完之后重启Nginx:

sudo /etc/init.d/nginx restart

接着将Koa2文件上传到服务器,启动后在浏览器里输入你的网址或者服务器ip,能访问到就大功告成了。

当然,这套Nginx配置还是非常简陋,如果希望长期稳定运行的话还得加入SSL和Gzip,网上资料很多,如果以后有机会的话我也会讲一下。

3.使用Pm2进行进程管理

能成功访问后接着就是将Koa放到后台运行,这里使用了Pm2进行管理,先来安装:

npm install -g pm2

安装好后在Koa目录下创建一个文件 “pm2.conf.json”,然后输入以下代码:

{
  "apps":{
    "name":"blog",
    "script": "bin/www",
    "watch": true,
    "ignore_watch":[
      "node_modules",
      "logs"
    ],
    "instances":2,
    "error_file":"logs/err.log",
    "out_file":"logs/out.log",
    "log_date_format": "YYYY-MM-DD HH:mm:ss"
  }
}

来重点说下两个参数,watch和instances。

Watch是检测到文件有改动会自动重启加载,ignore_watch则是排除不需要监控的文件。

Instances则是开启实例数,建议根据cpu核数进行配置,有多少核就开启多少条。

最后启动:

pm2 start pm2.conf.json

到这里,网站就部署完成了!

总结

以上所述是小编给大家介绍的Vue+Koa2 打包后进行线上部署的教程详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
获取Javscript执行函数名称的方法
Dec 22 Javascript
Jquery实现页面加载时弹出对话框代码
Apr 19 Javascript
js实现的后台左侧管理菜单代码
Sep 11 Javascript
jQuery获取浏览器类型和版本号的方法
Jul 05 Javascript
深入浅析jQuery对象$.html
Aug 22 Javascript
谈谈因Vue.js引发关于getter和setter的思考
Dec 02 Javascript
深入理解Vue-cli搭建项目后的目录结构探秘
Jul 13 Javascript
vue 修改 data 数据问题并实时显示的方法
Aug 27 Javascript
vue项目刷新当前页面的三种方法
Dec 04 Javascript
angular6根据environments配置文件更改开发所需要的环境的方法
Mar 06 Javascript
Object.keys() 和 Object.getOwnPropertyNames() 的区别详解
May 21 Javascript
TypeScript 引用资源文件后提示找不到的异常处理技巧
Jul 15 Javascript
简述vue-cli中chainWebpack的使用方法
Jul 30 #Javascript
vue实现中部导航栏布局功能
Jul 30 #Javascript
js定义类的方法示例【ES5与ES6】
Jul 30 #Javascript
Javascript 对象(object)合并操作实例分析
Jul 30 #Javascript
JavaScript跳出循环的三种方法(break, return, continue)
Jul 30 #Javascript
8个有意思的JavaScript面试题
Jul 30 #Javascript
开源一个微信小程序仪表盘组件过程解析
Jul 30 #Javascript
You might like
PHP获取网卡地址的代码
2008/04/09 PHP
PHP学习 变量使用总结
2011/03/24 PHP
php防止伪造的数据从URL提交方法
2014/06/27 PHP
Yii开启片段缓存的方法
2016/03/28 PHP
基于thinkPHP类的插入数据库操作功能示例
2017/01/06 PHP
php从数据库读取数据,并以json格式返回数据的方法
2018/08/21 PHP
php操作mongodb封装类与用法实例
2018/09/01 PHP
JavaScript中遍历对象的property的3种方法介绍
2014/12/30 Javascript
浅谈javascript中return语句
2015/07/15 Javascript
JS实现下拉菜单赋值到文本框的方法
2015/08/18 Javascript
解决bootstrap模态框数据缓存的问题方法
2018/08/10 Javascript
浅析vue cli3 封装Svgicon组件正确姿势(推荐)
2020/04/27 Javascript
Element Collapse 折叠面板的使用方法
2020/07/26 Javascript
vue-router重写push方法,解决相同路径跳转报错问题
2020/08/07 Javascript
[45:06]完美世界DOTA2联赛PWL S2 Magma vs InkIce 第二场 11.28
2020/12/02 DOTA
[01:48:04]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Elephant BO3 第一场 2月7日
2021/03/11 DOTA
使用python检测手机QQ在线状态的脚本代码
2013/02/10 Python
python抓取网页中的图片示例
2014/02/28 Python
基于Django模板中的数字自增(详解)
2017/09/05 Python
Python实现图片尺寸缩放脚本
2018/03/10 Python
selenium使用chrome浏览器测试(附chromedriver与chrome的对应关系表)
2018/11/29 Python
Python hashlib模块实例使用详解
2019/12/24 Python
通过python实现windows桌面截图代码实例
2020/01/17 Python
使用tensorflow实现矩阵分解方式
2020/02/07 Python
pyqt5中动画的使用详解
2020/04/01 Python
纯css3(无图片/js)制作的几个社交媒体网站的图标
2013/03/21 HTML / CSS
英国最大的在线运动补充剂商店:Discount Supplements
2017/06/03 全球购物
HR喜欢的自荐信格式
2013/10/08 职场文书
医药专业应届毕业生求职信范文
2014/01/01 职场文书
孝敬父母的演讲稿
2014/05/14 职场文书
兼职安全员岗位职责
2015/02/15 职场文书
2015年十一国庆节演讲稿
2015/03/20 职场文书
2016年第32个教师节致辞
2015/11/26 职场文书
2016年母亲节寄语
2015/12/04 职场文书
详解JS WebSocket断开原因和心跳机制
2021/05/07 Javascript
修改Nginx配置返回指定content-type的方法
2022/09/23 Servers