前言
大兜推薦Octopress這個傳說中的「駭客的blog」,可以使用markdown撰寫文章,還有很方便的程式碼上色功能,也不失設計彈性,一聽之下大為心動,就打算把blogger的舊家搬過來。
掙扎
一開始打算利用他寫的這篇文章安裝在Win7上面,不料困難重重,全部都設定好之後仍然無法使用程式碼上色功能,只好試著搬家到FreeBSD上面看看會不會比較方便安裝。
撞牆
原本打算照官網上的步驟一步一步來,但不料iconv的dependency問題一直無法解決(會一直噴找不到iconv錯誤),索性放棄,直接改用FreeBSD的ports, 結果瞬間就好了(不過未來可能會出現ruby版本相容性問題...QQ)
安裝
Install base ruby, ruby-iconv, ruby-bundler
% sudo vim /usr/ports/Mk/bsd.ruby.mk # 將RUBY_DEFAULT_VER?= 1.8 改成 1.9
% sudo portmaster converters/ruby-iconv
% sudo portmaster /usr/ports/sysutils/rubygem-bundler
% rehash
Next, install dependencies.
% cd
% git clone git://github.com/imathis/octopress.git octopress
% cd octopress # If you use RVM, You'll be asked if you trust the .rvmrc file (say yes).
% ruby --version # Should report Ruby 1.9.2 or 1.9.3
Install the default Octopress theme.
% gem install bundler
% rehash
% bundle install
% rake install
OK,完成XD!
可以繼續往下跑囉!
Reference
前言
最近系計中買了VMware vSphere平台的授權,當然要好好的用一下。
灌完FreeBSD9之後發現效能居然還比Ensky.tw這台實體機來的快!
因此決定把vSphere的VM偷兩部過來當做Load balance的Web server。
設定
原本那兩台採用DHCP + DDNS綁在某個hostname上面,因此打算使用CNAME做loadbalance的record,
google之後才發現CNAME沒辦法設多筆!因此我把host用A record綁在cdn.ensky.tw上面,
想要load balance的server再用CNAME指到cdn.ensky.tw上
設定其實非常簡單,就只是一筆DNS record上綁很多個A
cdn A 10.0.0.1
A 10.0.0.2
A 10.0.0.3
然後再把你要load balance的hostname導到cdn上面去
www CNAME cdn
好了!從此之後你的www就可以自動分散流量到10.0.0.1~3上面囉!
後話
其實這個作法並非非常理想,為何?
因為假設某台Server突然死掉了,本架構並不能做到fail-over,
也就是如果client很不幸的連到死掉的那台server,一樣會噴404 not found,
你會說,那我就寫隻script檢查有沒有死掉,死掉的話就nsupdate拿掉他就好啦?
但是dns更新需要時間,你就算拿掉該host,client端還是會404一陣子,直到dns快取expire...
這裡比較好的作法可能是用一台server做reverse proxy的工作,
當流量過來的時候自動round-robin導到內部的server pool上面,
而當有server掛掉的時候可以自動導到別台這樣。
改天來研究這個方法:p