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