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 相关文章推荐
JavaScript的目的分析
Jan 05 Javascript
基于jquery实现的省市区级联无ajax
Sep 24 Javascript
jquery 判断滚动条到达了底部和顶端的方法
Apr 02 Javascript
javascript实时获取鼠标坐标值并显示的方法
Apr 30 Javascript
原生js获取iframe中dom元素--父子页面相互获取对方dom元素的方法
Aug 05 Javascript
AngularJS入门教程之静态模板详解
Aug 18 Javascript
微信小程序 wxapp内容组件 progress详细介绍
Oct 31 Javascript
js滚轮事件兼容性问题需要注意哪些
Nov 15 Javascript
纯js模仿windows系统日历
Feb 04 Javascript
three.js加载obj模型的实例代码
Nov 10 Javascript
微信小程序tab切换可滑动切换导航栏跟随滚动实现代码
Sep 04 Javascript
解决微信授权成功后点击按返回键出现空白页和报错的问题
Jun 08 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的引用计数机制
2013/06/14 PHP
如何把php5.3版本升级到php5.4或者php5.5
2015/07/31 PHP
PHP加密技术的简单实现
2016/09/04 PHP
基于laravel belongsTo使用详解
2019/10/18 PHP
javascript 判断两个日期之差的示例代码
2015/09/05 Javascript
JS实现选中当前菜单后高亮显示的导航条效果
2015/10/15 Javascript
jQuery获取字符串中出现最多的数
2016/02/22 Javascript
jQuery筛选数组之grep、each、inArray、map的用法及遍历json对象
2016/06/20 Javascript
jQuery Dialog 打开时自动聚焦的解决方法(两种方法)
2016/11/24 Javascript
Javascript实现倒计时(防页面刷新)实例
2016/12/13 Javascript
jQuery实现立体式数字动态增加(animate方法)
2016/12/21 Javascript
js实现把图片的绝对路径转为base64字符串、blob对象再上传
2016/12/29 Javascript
30分钟快速入门掌握ES6/ES2015的核心内容(下)
2018/04/18 Javascript
JavaScript设计模式之构造器模式(生成器模式)定义与用法实例分析
2018/07/26 Javascript
node和vue实现商城用户地址模块
2018/12/05 Javascript
判断js数据类型的函数实例详解
2019/05/23 Javascript
vue.config.js常用配置详解
2019/11/14 Javascript
vue实现移动端触屏拖拽功能
2020/08/21 Javascript
[15:56]Heroes18_暗影萨满(完美)
2014/10/31 DOTA
python从sqlite读取并显示数据的方法
2015/05/08 Python
Python判断Abundant Number的方法
2015/06/15 Python
python日期相关操作实例小结
2019/06/24 Python
Pandas 重塑(stack)和轴向旋转(pivot)的实现
2019/07/22 Python
使用Python和OpenCV检测图像中的物体并将物体裁剪下来
2019/10/30 Python
关于Pytorch的MLP模块实现方式
2020/01/07 Python
简单的命令查看安装的python版本号
2020/08/28 Python
html5 touch事件实现触屏页面上下滑动(二)
2016/03/10 HTML / CSS
英国在线药房:Chemist.co.uk
2019/03/26 全球购物
一些PHP的面试题
2015/05/06 面试题
写一个函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度
2015/11/18 面试题
用Java语言将一个键盘输入的数字转化成中文输出
2013/01/25 面试题
社区活动邀请函范文
2014/01/29 职场文书
公司股份转让协议书范本
2015/01/28 职场文书
北京青年观后感
2015/06/15 职场文书
《雷雨》教学反思
2016/02/20 职场文书
python爬取豆瓣电影TOP250数据
2021/05/23 Python