记一次 Nginx DNS 缓存导致转发问题

在家里搭建了一个 GitLab 服务器,由于电信家庭宽带的公网 IP 是不固定的,且443端口是被封的,所以买了阿里云作为中转,利用 Ngnix 作 TCP Proxy 结合 DDNS ,这样就能正常上自己的 Git 了。但今天,我发现推代码怎么也推不上去,校对了密钥,服务器状态都没问题。最后上阿里云,重启了下 Nginx,发现可以了。 找了一圈原因,最后发现是 Nginx 转发缓存 DNS 解析导致的,下面我们就复现一下问题并找找为什么,以及解决方式。 ...

2021-03-06  ·  开发实战总结  ·  nginx dns

利用 git hook 规范你的代码与 commit message

在团队协作时,由于个人编码习惯的差异,导致代码格式,风格都会有所不同,这就给代码审核带来一定的困难,更严重的是会导致整体的代码质量不可控。这时,我们有必要借助一些工具来约束我们的代码格式。在Go中,我们经常使用的工具有: goimports: 自动导包; gofmt : 格式化我们的代码; golint: 检查代码命名,注释等; go vet: 静态错误检查。 那么,我们可以利用这些工具来规范团队的代码风格。但如果每次手动执行这些命令,或者仅仅依靠IDE去检查,这是不靠谱的,因为人的行为本身是不靠谱的==。 于是,我们可以结合git hook, 强制执行这些检查,检查不通过,代码都无法提交,从而达到强一致性。 同时,结合上一篇«规范git commit message与自动化版本控制», 这里我们介绍一下利用pre-commit 约束commit-msg来约束我们的代码与git commit message。 ...

2020-04-13  ·  开发实战总结  ·  git hook golang

规范 git commit message 与自动化版本控制

git commit message是你对你所编码内容的总结概括。规范、详细的git commit message不仅能体现你的内容概括能力,还能为你自己和团队,或项目带来巨大的好处,这也是我所推崇的。但很多小伙伴不愿意花时间在这里,经常会写出优化了一些功能、修复了一些BUG等等模糊不清的commit message,完全没有意识到这么写会带来一些严重的问题: 管理者/其他项目参与者无法快速获取有用信息,判定修改内容,只有花大量时间阅读源码; 事后无法快速定位以前遇到的类似问题; 无法自动化版本控制,只有每次重新阅读代码,手动写一些详细的描述,用来发布新版或提交测试。 规范、详细的git commit message不仅能解决这些问题,还能带来更多的好处。 ...

2020-04-12  ·  开发实战总结  ·  git standard-version

超详细 vim 配置 (with MacVim)

MacVim 用了很久,非常喜欢 vim 编程带来的高效,清爽,hack 的感觉,感谢deepzz多年前的传道。这两天花了点时间一行一行的去查vimrc内的配置,大概弄清了每一项配置的作用,并标上注释,整理常用快捷键。 ...

2020-03-24  ·  开发实战总结 开发工具  ·  vim

关于 Docker 清理

在Docker的日常使用中,我们或许偶尔遇到下面这些情况: $ docker-compose ps [27142] INTERNAL ERROR: cannot create temporary directory! $ df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 489M 132K 488M 1% /dev tmpfs 497M 0 497M 0% /dev/shm /dev/xvda1 7.8G 7.7G 0 100% / ...

2019-04-05  ·  开发实战总结  ·  docker

MIME Types 速查表

做web开发时,经常需要设置一些返回数据的类型的头部,也就是 MIME Types。 这遍博客就是收罗了大部分的类型, 如果以后发现新的会持续更新。 ...

2019-03-01  ·  开发实战总结  ·  mime-types

记一次 PostgreSQL LIKE 索引优化,联合字段 LIKE 查询优化。

由于最近我司业务量上涨,数据量剧增,数据库查询速度明显变慢,单次查询居然达到1800ms以上,急需优化。待查阅一番后,我知道了LIKE查询正确的索引使用姿势,特别是一些符合字段索引。 ...

2018-09-01  ·  开发实战总结  ·  postgres like index

日常 Postgres 数据库点滴记录

Desc:Postgres数据库日常使用,插入更新,复制表,一些使用习惯。 由于经常接触数据库,但又停留在比较浅的层次,暂且没有时间也没必要去系统了解,这篇博客权当记录一些自己常用到的pg数据库语句,持续更新~ ...

2018-05-17  ·  开发实战总结  ·  sql postgres

一次诡异的数据库删除

事情是这样的。 我们的项目使用的是sqlite3数据库。在一次常规模拟测试中,我们想了解,如果程序正在运行中,用户将sqlite3数据库文件删除,程序能否进入预设的重置流程。 结果,我们却让我们有些意外。 ...

2018-04-12  ·  开发实战总结  ·  sqlite3

AWS 命令行界面(aws-cli)从安装到快速上手

AWS 命令行界面 (CLI) 是用于管理 AWS 服务的统一工具。只通过一个工具进行下载和配置,您可以使用命令行控制多个 AWS 服务并利用脚本来自动执行这些服务。 —- aws官方是这么描叙aws-cli的。在实际使用的时候通过脚本完成全自动化部署,一键管理许多云服务,aws-cli确实是你管理aws服务的一个提高生产力的好工具。 ...

2017-11-17  ·  开发实战总结  ·  aws 工具 aws-cli