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中链式调用之研习
Apr 07 Javascript
JavaScript模拟实现键盘打字效果
Jun 29 Javascript
jQuery实现html元素拖拽
Jul 21 Javascript
node模块机制与异步处理详解
Mar 13 Javascript
jQuery实现文档树效果
Feb 20 Javascript
react-redux中connect()方法详细解析
May 27 Javascript
vue keep-alive请求数据的方法示例
May 16 Javascript
在AngularJs中设置请求头信息(headers)的方法及不同方法的比较
Sep 04 Javascript
vue 实现微信浮标效果
Sep 01 Javascript
基于JavaScript实现十五拼图代码实例
Apr 26 Javascript
JS实现canvas简单小画板功能
Jun 23 Javascript
Element Dropdown下拉菜单的使用方法
Jul 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
ip签名探针
2006/10/09 PHP
人尽可用的Windows技巧小贴士之下篇
2007/03/22 PHP
PHP.ini中配置屏蔽错误信息显示和保存错误日志的例子
2014/05/12 PHP
php查看网页源代码的方法
2015/03/13 PHP
php计划任务之验证是否有多个进程调用同一个job的方法
2015/12/07 PHP
抛弃 PHP 代价太高
2016/04/26 PHP
PHP面向对象五大原则之开放-封闭原则(OCP)详解
2018/04/04 PHP
利用PHP内置SERVER开启web服务(本地开发使用)
2020/01/22 PHP
Jquery 插件开发笔记整理
2011/01/17 Javascript
js 弹出对话框(遮罩)透明,可拖动的简单实例
2016/07/11 Javascript
bootstrapValidator bootstrap-select验证不可用的解决办法
2017/01/11 Javascript
canvas实现图片根据滑块放大缩小效果
2017/02/24 Javascript
bootstrap实现的自适应页面简单应用示例
2017/03/09 Javascript
Vue.js实现表格渲染的方法
2018/09/07 Javascript
vue实现form表单与table表格的数据关联功能示例
2019/01/29 Javascript
vue使用axios上传文件(FormData)的方法
2019/04/14 Javascript
详解在vue-cli3.0中自定css、js和图片的打包路径
2019/08/26 Javascript
javascript移动端 电子书 翻页效果实现代码
2019/09/07 Javascript
Vue Object 的变化侦测实现代码
2020/04/15 Javascript
Nuxt默认模板、默认布局和自定义错误页面的实现
2020/05/11 Javascript
在实例中重学JavaScript事件循环
2020/12/03 Javascript
在Windows系统上搭建Nginx+Python+MySQL环境的教程
2015/12/25 Python
TensorFlow 实战之实现卷积神经网络的实例讲解
2018/02/26 Python
python3实现带多张图片、附件的邮件发送
2019/08/10 Python
Tensorflow 实现释放内存
2020/02/03 Python
Python ellipsis 的用法详解
2020/11/20 Python
HTML5离线缓存在tomcat下部署可实现图片flash等离线浏览
2012/12/13 HTML / CSS
微软澳洲官方网站:Microsoft Australia
2017/01/10 全球购物
秘书岗位职责
2013/11/18 职场文书
知识竞赛活动方案
2014/02/18 职场文书
爱国卫生月实施方案
2014/02/21 职场文书
测控技术自荐信
2014/06/05 职场文书
工伤死亡理赔协议书
2014/10/20 职场文书
街道社区活动报告
2015/02/05 职场文书
班主任远程培训研修日志
2015/11/13 职场文书
2016重阳节红领巾广播稿
2015/12/18 职场文书