每一个可以努力的日子,都是一份厚礼。
server
将代码库从 SVN 迁移至 Git 并保留所有 commit 记录
2014 5月 15th
公司内部原本使用 SVN 进行版本控制,但随着 Github 的流行我个人的代码管理习惯逐渐转变。虽然公司项目并非开源,SVN 所具有的标准 trunk / branches / tags 结构完全够用,使用 Git 仍然有如下优势:
- 类似 GitHub 的 GitLab 免费管理工具。将代码托管在自己内部服务器上的同时,提供了优美的 web 界面,图形化分支结构,更直观的代码审查,统计、issue 系统、wiki 等功能全面集成。
- 更方便主程做 code review,控制代码质量。创建主仓库,多人开发时使用 fork 模式,每个人拥有自己独立的 repo,独立的 trunk / branches,最后发送 pull request 进行代码合并。
- commit 和 push 更快。体现在 push 到远程仓库时 Git 会先对所有需要上传的文件进行 zip 打包压缩,然后一次性传输,在远程服务器解压,全部自动完成。而 SVN 则是一个一个文件地上传,代码是纯文本,总体积并不大,但是大量零碎的小文件频繁建立网络连接造成延迟。这在升级第三方的库或者框架时,成千上万的文件更新更加让人难以忍受。
- hook 可以更方便做自动化部署。当然这个 SVN 也有。
权衡后我决定花时间进行代码仓库的迁移。代码迁移并非简单地创建 Git repo 把当前项目代码一次性 commit 过去就够了,因为 SVN 中存有长年累月的 commit 历史记录,丢失历史记录将对今后追溯 debug 造成非常大的麻烦,所以如何保留 commit 记录就是迁移的关键。
自动备份网站并同步到 Dropbox
2013 9月 9th
之前写过一篇博客,记录了 定时自动备份网站和数据库 的脚本,不过只是将 VPS 上的数据打包保存在了本机的一个目录下,要知道真正的容灾备份需要至少在 3 个不同的物理节点上都有一份拷贝的。Email 发送备份文件在数据超多的情况下不太实际,而出于成本考虑我不想为了一个 VPS 又购买另一个来用作 FTP。不禁想到 DropBox,它无疑是很好的选择——基于 Amazon S3 的云存储保证了可靠性,免费的容量已经足够用,也不必担心数据被审查。
浅谈香港的数据中心和主机服务
2013 4月 20th
再见,新浪云商店
2013 4月 20th
尘埃落定的博客曾经架设在 Amazon EC2 上,新用户第一年免费到期后,第一个月的信用卡账单彻底把我吓尿,当时还是一名穷学生的我开始寻找替代。其实另一个主要原因是我耗费了大量的精力去处理各种扫描抓站、DDOS 攻击、爆 root,简直是把我带上了运维这条邪路越走越远。这些屁事都扔给主机服务商吧,我只想安心写点东西。
正好这时候新浪推出了云商店,基于 SAE PaaS 平台的 SaaS 服务。我千方百计弄到邀请码,本着 geek 精神作为第一批用户试用了一下,感觉还不错(主要是便宜,好吧我认了)。另外新浪 SAE 云计算平台做得风生水起在业界还算有点口碑,主页上的 技术架构 都写很专业很高端的样子把我忽悠得高潮叠起。于是我就把我的小站迁移到了新浪云商店,还专门写了篇 blog 颂扬 他家的云计算业务钱途光明云云。
VPS 防止 SSH 暴力登录尝试攻击
2012 8月 22nd
VPS 屏蔽扫描网站的 IP
2012 8月 17th
前段时间博客经常性地无法访问,网站宕机。SSH 上去看进程,发现大量 php-fpm 占用系统资源,查看服务器的 Nginx 日志,就知道发生了什么事情。个别 IP “友情”为我的站点扫描漏洞,瞬时并发连接很大。我知道大家也没什么恶意,只是用黑客工具比较兴奋,拿 www.lovelucy.info 练练手而已嘛。但是博主很穷,小站搭建在一个配置并不高的免费 VPS 上,折腾不起,压力很大,结果一不小心让各位搞成 DoS 拒绝服务攻击了,真是惭愧。
使用 P3P 规范让 IE 跨域接受第三方 cookie
2012 7月 7th
前两天帮同事处理一个 js 跨域问题,使用 jsonp 跨域提交用户名密码请求,实现自动登录第三方网站,即 SSO(single-sign-on) 单点登录,一处登录处处登录。在 Chrome 下没问题,IE 却不行。查看 HTTP 的几个来回,发现登录请求是成功的,问题出在第三方网站返回的 cookie (session id) IE 并没有接受,下一次发送请求时根本没有带上 cookie,说明之前的 Set-Cookie 指令没有效果,所以怎么也登录不了。查了一下,有人使用 iframe 内嵌网页的形式,也遇到了 IE 下不能设置 cookie 的情况。
如果在“Internet选项”中把“隐私”级别设置为低,或者把第三方域名列入“可信站点”就没问题了。但是我们不可能让每个用户去更改 IE 设定吧?这是一个很常遇到的场景,肯定有别的解决办法。
Zenoss 报警 API
2012 6月 29th
记一次运维,一个 Linux 木马
2012 4月 22nd
上个月数据中心的多台服务器接连被人挂马,又有客户的网站被 DDOS,公司的运维整个都处于一种被打了鸡血的亢奋状态,连我手上的项目都被部门老大停了,调去帮运维。第一次见到 Linux 下面的木马,突然想起来,还是值得记录一下。
Nginx配置SSL证书部署HTTPS网站
2011 10月 1st