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 相关文章推荐
2007/12/23更新创意无限,简单实用(javascript log)
Dec 24 Javascript
jQuery 性能优化指南 (1)
May 21 Javascript
SeaJS入门教程系列之SeaJS介绍(一)
Mar 03 Javascript
AngularJS模块管理问题的非常规处理方法
Apr 29 Javascript
浅谈javascript中的DOM方法
Jul 16 Javascript
基于jquery实现简单的手风琴特效
Nov 24 Javascript
javascript实现PC网页里的拖拽效果
Mar 14 Javascript
javascript实现dom元素可拖动
Mar 21 Javascript
jQuery设置单选按钮radio选中/不可用的实例代码
Jun 24 Javascript
微信小程序 实现tabs选项卡效果实例代码
Oct 31 Javascript
bootstrap daterangepicker双日历时间段选择控件详解
Jun 15 Javascript
AngularJS 控制器 controller的详解
Oct 17 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学习笔记 面向对象的构造与析构方法
2011/06/13 PHP
php使用文本统计访问量的方法
2016/05/12 PHP
利用php_imagick实现复古效果的方法
2016/10/18 PHP
PHP编程实现阳历转换为阴历的方法实例
2017/08/08 PHP
php封装单文件上传到数据库(路径)
2017/10/15 PHP
基于Jquery+Ajax+Json的高效分页实现代码
2011/10/29 Javascript
JS文本框默认值处理详解
2013/07/10 Javascript
cookie的复制与使用记住用户名实现代码
2013/11/04 Javascript
JavaScript实现班级随机点名小应用需求的具体分析
2014/05/12 Javascript
avalon js实现仿google plus图片多张拖动排序附源码下载
2015/09/24 Javascript
socket.io学习教程之基础介绍(一)
2017/04/29 Javascript
react高阶组件经典应用之权限控制详解
2017/09/07 Javascript
AngularJS2 与 D3.js集成实现自定义可视化的方法
2017/12/01 Javascript
借助云开发实现小程序短信验证码的发送
2020/01/06 Javascript
vue各种事件监听实例(小结)
2020/06/24 Javascript
Tensorflow 自带可视化Tensorboard使用方法(附项目代码)
2018/02/10 Python
Python3随机漫步生成数据并绘制
2018/08/27 Python
Python基于滑动平均思想实现缺失数据填充的方法
2019/02/21 Python
django admin 添加自定义链接方式
2020/03/11 Python
Python 下载Bing壁纸的示例
2020/09/29 Python
实例教程 HTML5 Canvas 超炫酷烟花绽放动画实现代码
2014/11/05 HTML / CSS
使用spring mvc+localResizeIMG实现HTML5端图片压缩上传的功能
2016/12/16 HTML / CSS
马德里著名的运动鞋商店:NOIRFONCE
2019/04/12 全球购物
Richards网上商店:当代时尚,遍布巴西
2019/11/03 全球购物
测试时代收集的软件测试面试题
2013/09/25 面试题
物理教师自荐信范文
2013/12/28 职场文书
社区工作者感言
2014/03/02 职场文书
运动会标语
2014/06/21 职场文书
2014年学习委员工作总结
2014/11/14 职场文书
安全承诺书
2015/01/19 职场文书
本科毕业论文答辩稿
2015/06/23 职场文书
2019年XX公司的晨会制度及流程!
2019/07/23 职场文书
新手开公司创业注意事项有哪些?
2019/07/29 职场文书
golang 如何用反射reflect操作结构体
2021/04/28 Golang
关于python中模块和重载的问题
2021/11/02 Python
Redis实现订单过期删除的方法步骤
2022/06/05 Redis