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的执行过程(图文)
May 20 Javascript
javascript控制swfObject应用介绍
Nov 29 Javascript
js函数调用常用方法详解
Dec 03 Javascript
jquery 多行文本框(textarea)高度变化
Jul 03 Javascript
js数组中如何随机取出一个值
Jun 13 Javascript
node.js中使用q.js实现api的promise化
Sep 17 Javascript
javascript数据结构之双链表插入排序实例详解
Nov 25 Javascript
JS实时弹出新消息提示框并有提示音响起的实现代码
Apr 20 Javascript
原生JS实现不断变化的标签
May 22 Javascript
React-Native中禁用Navigator手势返回的示例代码
Sep 09 Javascript
React数据传递之组件内部通信的方法
Dec 31 Javascript
JS中的算法与数据结构之二叉查找树(Binary Sort Tree)实例详解
Aug 16 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通用检测函数集合
2006/11/25 PHP
PHP Memcached + APC + 文件缓存封装实现代码
2010/03/11 PHP
php数组函数序列之array_key_exists() - 查找数组键名是否存在
2011/10/29 PHP
php 无法加载mysql的module的时候的配置的解决方案引发的思考
2012/01/27 PHP
php批量添加数据与批量更新数据的实现方法
2014/12/16 PHP
Laravel框架使用技巧之使用url()全局函数返回前一个页面的地址方法详解
2020/04/06 PHP
PHP number_format函数原理及实例解析
2020/07/14 PHP
JS类中定义原型方法的两种实现的区别
2007/03/08 Javascript
jquery的ajax从纯真网(cz88.net)获取IP地址对应地区名
2009/12/02 Javascript
js实现类似于add(1)(2)(3)调用方式的方法
2015/03/04 Javascript
用NODE.JS中的流编写工具是要注意的事项
2016/03/01 Javascript
JavaScript过滤字符串中的中文与空格方法汇总
2016/03/07 Javascript
基于MVC+EasyUI的web开发框架之使用云打印控件C-Lodop打印页面或套打报关运单信息
2016/08/29 Javascript
D3.js封装文本实现自动换行和旋转平移等功能
2016/10/14 Javascript
手机软键盘弹出时影响布局的解决方法
2016/12/15 Javascript
axios基本入门用法教程
2017/03/25 Javascript
Vue项目使用CDN优化首屏加载问题
2018/04/01 Javascript
vue项目在安卓低版本机显示空白的原因分析(两种)
2018/09/04 Javascript
详解Vue-cli3.X使用px2rem遇到的问题
2019/08/09 Javascript
python脚本实现查找webshell的方法
2014/07/31 Python
Python中字典映射类型的学习教程
2015/08/20 Python
使用Selenium破解新浪微博的四宫格验证码
2018/10/19 Python
TensorFlow内存管理bfc算法实例
2020/02/03 Python
pytorch中的inference使用实例
2020/02/20 Python
如何理解python面向对象编程
2020/06/01 Python
CSS3实现彩色进度条动画的示例
2020/10/29 HTML / CSS
用HTML5.0制作网页的教程
2010/05/30 HTML / CSS
Kidsroom台湾:来自德国的婴儿用品
2017/12/11 全球购物
美国亚洲时尚和美容产品的一站式网上商店:Stylevana
2019/09/05 全球购物
办理护照介绍信
2014/01/16 职场文书
四年级数学教学反思
2014/02/02 职场文书
新学期开学演讲稿
2014/05/24 职场文书
2015年党建工作目标责任书
2015/05/08 职场文书
城镇居民医疗保险工作总结
2015/08/10 职场文书
JS Canvas接口和动画效果大全
2021/04/29 Javascript
HTML怎么设置下划线?html文字加下划线方法
2021/12/06 HTML / CSS