gitab出现500错误的可能原因
HTTP服务器返回码为500表示服务器出错,我遇到过好几次GitLab出现500错误,主要是在用户merge request和提交issue的时候。我们的GitLab服务器版本为GitLab 7.9.1社区版。
![gitlab-500.png][1]
tcpcopy的简单用法
这篇文章介绍下网易开源的流量重放(replay)工具TCPCopy,说是简单介绍,绝对不是谦虚,因为自己了解的确实也不多。为什么不甚了解呢,大家可以到TCPCopy的官方仓库看看,https://github.com/session-replay-tools/tcpcopy.git,这货的官方文档是全英文的,不知道为什么,读起来特别有难度。OK,吐槽到这里结束,接下来是实战时间。
使用openresty增强Nginx的Proxy_Cache缓存
这个静态首页缓存的需求是分步骤的,当你越往下走,才发现水越深。一开始都把事情想当然了。本篇文章详细描述了如何一步步深入需求,解决缓存中遇到的问题,以及踩过的水坑。
![fierce][1]
语言环境变量LANG和LANGUAGE
作为5年的重度Linux桌面用户,2年前改投elementary os之后,越来越少折腾了。对Linux桌面版有兴趣的建议尝试下这款操作系统,免费广告完毕。
建立自己的OpenID站点
学习flask用户登录一节的时候,案例使用的是OpenID认证,但是找不到提供OpenID的站点,Google,Facebook这些你懂的。在绝望的时候发现了http://openid.org.cn/,该网站可以让新手在1分钟内搭建自己的OpenID站点,超级简单方便,好用到想哭。用来做OpenID的客户端代码功能测试实在不能更方便了。
![openid logo][1]
无比强大的shell之json解析工具jq
写脚本还是以shell为主,但是在调用api或者访问服务的时候,经常用到json,这时候会用python来解析json数据,所以是否需要解析json一直是我决定用python还是shell编写脚本的参考依据。某天遇到一个大神,他说你知道jq嘛,回去搜一搜,简直了。废话少说,上代码说话。
![json工具][1]
keepalived的简单配置
Keepalived是一款流行的高可用软件,通过为keepalived集群设置虚IP和健康检测脚本,当检查失败的时候,根据keepalived的策略使虚IP在服务器之间漂移。由于虚IP漂移过程中可能有交换机arp缓存导致请求失效,所以在切换到master之后,应立刻自动执行脚本刷新交换机的缓存。
乙未年广福禅寺小住记
临行前,我对朋友说,我已经做好剃发的准备了。然后头也不回一个向东,一个向西。假装洒脱,实则心中充满不安!
接下来一切都是未知的,29号下班了特意把朋友叫到家里来聊聊天,收拾好行李,我说我心中有太多的疑惑,需要安静思考,希望一段时间的打坐参禅能给我解答,对我来说,毕竟也是一种新的人生体验。如果顿悟,或许就待在山上不回来了!
Nginx记录用户请求Header到access log
为了统计和其它用途,经常有人需要自定义Nginx日志,把http请求中的某个字段记录到日志中,刚好在看lua+nginx的文章,第一想到的是用lua赋值来做,但是想想有点小恶心,于是Google了一番,发现Nginx自己就能够记录收到的HTTP请求的头部数据,测试如下方法可用。
利用strace做PHP故障排查
![tools.jpg][1] 收到报警线上运行PHP程序的8核服务器load average达到200多,这个太吓人了。赶紧登录系统运行top,看到好几个php-fpm进程CPU利用率达到100%,看到大多数CPU都消耗在内核态,即sys模式,运行状态良好的程序大多时候应该运行在用户态才对呀。
用strace看看进程内部的系统调用,为了方便重复查看,把输出重定向到临时文件/tmp/php.debug中:
# strace -p <PID> 2> /tmp/php.debug