每一个可以努力的日子,都是一份厚礼。
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



