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 相关文章推荐
基于jquery的给文章加入关键字链接
Oct 26 Javascript
浅谈window.onbeforeunload() 事件调用ajax
Jun 29 Javascript
JS数组去重(4种方法)
Mar 27 Javascript
angular 用拦截器统一处理http请求和响应的方法
Jun 08 Javascript
ES6深入理解之“let”能替代”var“吗?
Jun 28 Javascript
vue2.0 实现导航守卫(路由守卫)
May 21 Javascript
Vue验证码60秒倒计时功能简单实例代码
Jun 22 Javascript
在vue中使用v-bind:class的选项卡方法
Sep 27 Javascript
Vue项目实现简单的权限控制管理功能
Jul 17 Javascript
vue轮播组件实现$children和$parent 附带好用的gif录制工具
Sep 26 Javascript
vue 使用v-for进行循环的实例代码详解
Feb 19 Javascript
JS控制下拉列表左右选择实例代码
May 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生成随机数或者字符串的代码
2008/09/05 PHP
解析php addslashes()与addclashes()函数的区别和比较
2013/06/24 PHP
微信营销平台系统?刮刮乐的开发
2014/06/10 PHP
PHP中配置IIS7实现基本身份验证的方法
2015/09/24 PHP
JS网络游戏-(模拟城市webgame)提供的一些例子下载
2007/10/14 Javascript
基于jquery完美拖拽,可返回拖动轨迹
2012/03/29 Javascript
js 异步操作回调函数如何控制执行顺序
2013/12/24 Javascript
解决自定义$(id)的方法与jquery选择器$冲突的问题
2014/06/14 Javascript
JavaScript实现跨浏览器的添加及删除事件绑定函数实例
2015/08/04 Javascript
Javascript中匿名函数的调用与写法实例详解(多种)
2016/01/26 Javascript
jQuery制作网页版选项卡
2016/07/28 Javascript
AngularJS 实现JavaScript 动画效果详解
2016/09/08 Javascript
Bootstrap CSS组件之导航(nav)
2016/12/17 Javascript
js图片加载效果实例代码(延迟加载+瀑布流加载)
2017/05/12 Javascript
Angular4 中常用的指令入门总结
2017/06/12 Javascript
微信小程序框架wepy之动态控制类名
2018/09/14 Javascript
使用NestJS开发Node.js应用的方法
2018/12/03 Javascript
详解Vue.js3.0 组件是如何渲染为DOM的
2020/11/10 Javascript
使用IPython来操作Docker容器的入门指引
2015/04/08 Python
python实现颜色空间转换程序(Tkinter)
2015/12/31 Python
Python selenium如何设置等待时间
2016/09/15 Python
python+django快速实现文件上传
2016/10/24 Python
Python实现堡垒机模式下远程命令执行操作示例
2019/05/09 Python
python实现超市商品销售管理系统
2019/10/25 Python
python的sys.path模块路径添加方式
2020/03/09 Python
将世界上最美丽的摄影作品转化为艺术作品:Photos.com
2017/11/28 全球购物
Lookfantastic香港官网:英国知名美妆购物网站
2018/06/19 全球购物
晚宴邀请函范文
2014/01/15 职场文书
运动会通讯稿100字
2014/01/31 职场文书
学生生病请假条范文
2014/02/16 职场文书
公司司机岗位职责范本
2014/03/03 职场文书
老公给老婆的保证书
2014/04/28 职场文书
大学第二课堂活动总结
2014/07/08 职场文书
村干部任职承诺书
2015/01/21 职场文书
2015年社区矫正工作总结
2015/04/21 职场文书
MySql重置root密码 --skip-grant-tables
2022/04/11 MySQL