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 相关文章推荐
asp.net和asp下ACCESS的参数化查询
Jun 11 Javascript
jquery 学习之一 对象访问
Nov 23 Javascript
点弹代码 点击页面任何位置都可以弹出页面效果代码
Sep 17 Javascript
jquery $.each 和for怎么跳出循环终止本次循环
Sep 27 Javascript
解析jQuery的三种bind/One/Live事件绑定使用方法
Dec 30 Javascript
Ajax清除浏览器js、css、图片缓存的方法
Aug 06 Javascript
JavaScript程序设计之JS调试
Dec 09 Javascript
详解Javascript函数声明与递归调用
Oct 22 Javascript
jquery.Callbacks的实现详解
Nov 30 Javascript
JQuery元素快速查找与操作
Apr 22 jQuery
js+SVG实现动态时钟效果
Jul 14 Javascript
react koa rematch 如何打造一套服务端渲染架子
Jun 26 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公用函数列表[正则]
2007/02/22 PHP
php获取指定日期之间的各个周和月的起止时间
2014/11/24 PHP
php rsa 加密,解密,签名,验签详解
2016/12/06 PHP
php如何获取Http请求
2020/04/30 PHP
推荐一些非常不错的javascript学习资源站点
2007/08/29 Javascript
ymPrompt的doHandler方法来实现获取子窗口返回值的方法
2010/06/25 Javascript
setTimeout的延时为0时多个浏览器的区别
2012/05/23 Javascript
JS左右无缝滚动(一般方法+面向对象方法)
2012/08/17 Javascript
jquery中的查找parents与closest方法之间的区别
2013/12/02 Javascript
javascript中expression的用法整理
2014/05/13 Javascript
使用JavaScript和C#中获得referer
2014/11/14 Javascript
web前端设计师们常用的jQuery特效插件汇总
2014/12/07 Javascript
基于jQuery实现的双11天猫拆红包抽奖效果
2015/12/01 Javascript
详解Angularjs中的依赖注入
2016/03/11 Javascript
NodeJS中的MongoDB快速入门详细教程
2016/11/11 NodeJs
jquery.tableSort.js表格排序插件使用方法详解
2020/08/12 Javascript
浅谈es6语法 (Proxy和Reflect的对比)
2017/10/24 Javascript
基于模板引擎Jade的应用(详解)
2017/12/12 Javascript
js实现web调用摄像头 js截取视频画面
2019/04/21 Javascript
微信小程序实现折线图的示例代码
2019/06/07 Javascript
JS模拟浏览器实现全局搜索功能
2019/09/11 Javascript
Nodejs环境实现socket通信过程解析
2020/07/03 NodeJs
[56:24]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#1Liquid VS MVP.Phx第二局
2016/03/04 DOTA
跟老齐学Python之编写类之二方法
2014/10/11 Python
Python 数据结构之队列的实现
2017/01/22 Python
python实现的爬取电影下载链接功能示例
2019/08/26 Python
python读取Excel表格文件的方法
2019/09/02 Python
如何基于Python按行合并两个txt
2020/11/03 Python
澳大利亚家具和家居用品购物网站:Zanui
2018/12/29 全球购物
New Balance澳大利亚官网:运动鞋和健身服装
2019/02/23 全球购物
党校自我鉴定范文
2013/10/02 职场文书
质检的岗位职责
2013/11/17 职场文书
小学三年级数学教学反思
2014/01/31 职场文书
2014年医院个人工作总结
2014/12/09 职场文书
大班上学期个人总结
2015/02/13 职场文书
MySQL创建管理RANGE分区
2022/04/13 MySQL