日记

日记

  • Diary
  • GitHub

›All Blog Posts

All Blog Posts

  • 再看高程3
  • 面试
  • 个人简历
  • react的高性能
  • webpack源码学习
  • 树莓派
  • 布局
  • 模块化
  • 攻击与安全
  • 异步
  • TODO
  • React状态管理比较
  • 性能优化
  • HTTP缓存
  • (译)JS中数据的改变与发现
  • CSS杂记
  • XML与SVG
  • 个人简历
  • Workspaces是什么
  • NPM包测试之低高级策略
  • 谈谈version
  • 减肥之道
  • 问题汇总
  • 一个nginx配置
  • 好用的工具
  • 好用的npm包
  • 流行框架学习对比

问题汇总

June 7, 2018

Shiyong Yin

Portal发布系统发布停服务失败不会更新service脚本

停服务失败后更新脚本,并再次执行停服务操作

Portal发布使用node编译会报错,使用yarn则不会

看到错误是HeadTable报了错误,还以为和rc-table的版本有关,换了版本之后发现不行,应该和rc-table 版本无关,隐隐感觉是编译打包,或者npm install安装包的问题。后来查出是webpack4需要node的版本 大于等于6.11.5,这个就比较坑了,而portal还不支持指定node版本进行安装,更诡异的是,build.sh里面 已经指定了node的版本,依然不行。原因在于:node安装包的步骤先于build.sh,所以指定的node版本在 Node安装包的时候并没有生效。坑。。。

发布的服务使用的3001端口,无法再使用nginx在3001进行代理

部署机器:l-tcdev2.wap.dev.cn0 通过80端口进行统一分发

如果是~* .html$ 转发到本机器的3001端口,使用web服务 如果是= \ 转发到本机器的3001端口,使用web服务 剩下的其他的 转发到本机器的3000端口,使用api服务

Dev连接Beta的redis,一直加载不出来,返回504,但是能连上

PS:解决问题并不难,难的是定位问题。 一开始,各种定位不出问题来,通过yarn start启动服务的时候看到Ready check failed错误。 在redis.createCliend的option中加上no_ready_check: true就可以了

Revert之后merge问题

参见https://github.com/git/git/blob/master/Documentation/howto/revert-a-faulty-merge.txt

总的来说如下

——o——o——-o——M——-x——x——W  master主干
           /
——-—A—————B              development分支

———-A—————B———C————D      development分支
  • M是将B merge到master之后的节点
  • W是将master revert到之前某个节点的节点

分支B分支上的代码合并到了master(M节点处),并在master上进行了revert(W节点处) 那么之后development分支修复了此问题,当我们再次将master合并过来的时候,发现A和B不见了

解决方法:执行如下命令

git revert W #W代表节点的md5值

Websocket连接失败

在easy1机器上没有问题,在easy3机器上有问题,据此推断应该不是代码问题,应该是ng问题 经查,需要设置如下三个参数来使websocket正确工作(easy1上设置了,而easy3上并没有)

location / {
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
}

下面来捋一捋

可参考http://nginx.org/en/docs/http/websocket.html

  1. 为了将client和server的连接转换为Websockt连接,需要使用Http/1.1才支持的协议切换机制。
  2. Upgrade和Connect参数设置无法从client传到proxied server(ng),所以需要我们在ng中明确配置
  3. 另外ng中Connection的默认值是close

综上,设置如上三个参数可解决socket连接问题。

全栈

  • 域名
  • 内网
  • 机器(权限,开发机,beta机,线上机器)
  • 发布系统(jenkins,前后端关联(java的maven,node的ncs))
  • 后端服务器(后端环境,数据库
    • node服务器:
    • bluebird Promise
    • chai 单元测试
    • dotenv 环境变量
    • knex SQL构造工具
    • koa 下一代web开发框架
    • pm2 node进程管理,守护进程
    • pug 模板渲染)
  • 前端服务器(
    • webpack
    • react,vue,pug
    • angular)
Recent Posts
  • Portal发布系统发布停服务失败不会更新service脚本
  • Portal发布使用node编译会报错,使用yarn则不会
  • 发布的服务使用的3001端口,无法再使用nginx在3001进行代理
  • Dev连接Beta的redis,一直加载不出来,返回504,但是能连上
  • Revert之后merge问题
  • Websocket连接失败
  • 全栈
Copyright © 2018-2019 Shiyong Yin