问题汇总
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
- 为了将client和server的连接转换为Websockt连接,需要使用Http/1.1才支持的协议切换机制。
- Upgrade和Connect参数设置无法从client传到proxied server(ng),所以需要我们在ng中明确配置
- 另外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)