通常我們會使用多台伺服器來提供同一種服務來達到負載平衡(Load Balance),以HTTP(S)服務來說,最常使用的就是硬體式的L4或L7 Switch設備,但這種設備通常都價值不菲,所以我們以開放原始碼的Haproxy服務來替代硬體,不僅成本低廉,穩定性、效率與安全都是上上之選,搭配穩定的作業系統,堪稱完美組合啊!
如果我們僅使用yum install haproxy,系統預設是安裝1.5.x的版本,這也是我在之前的系統所使用的版本,上線後就再也沒有動過,非常的穩定,但他不支援10Gbps網路,讓我不得不在新的系統升級計畫中換掉他,目前最新的穩定版本來到1.7.5,接下來我們就開始安裝吧!
第一步:安裝編譯原始碼需要用到的工具,包含:make、gcc、wget。
[root@localhost peter]# yum install make wget gcc
第二步:使用wget下載Haproxy 1.7.5,官方網站請點我。
[root@localhost peter]# wget http://www.haproxy.org/download/1.7/src/haproxy-1.7.5.tar.gz
第三步:解壓縮下載好的檔案。
[root@localhost peter]# tar zxvf haproxy-1.7.5.tar.gz
第四步:進入資料夾並編譯,在此,我們將編譯完成的結果指定到/usr/local/底下。
[root@localhost peter]# cd haproxy-1.7.5
[root@localhost peter]# make TARGET=linux2628 PREFIX=/usr/local/haproxy
第五步:安裝Haproxy,當然也是將執行檔指定到/usr/local/,避免等等我們找不到。
[root@localhost peter]# make install PREFIX=/usr/local/haproxy
第六步:將執行檔複製到/usr/sbin/底下,因為預設的初始化的路徑是設定在/usr/sbin/,若不想做這步驟,也可以嘗試修改haproxy.init檔案的內容。
[root@localhost peter]# cp /usr/local/haproxy/sbin/haproxy /usr/sbin/
第七步:複製啟動腳本檔案到系統中,並調整權限,確保系統可以正常將Haproxy啟動。
[root@localhost peter]# cp examples/haproxy.init /etc/init.d/haproxy
[root@localhost peter]# chmod 755 /etc/init.d/haproxy
第八步:新增一個haproxy的使用者帳號給Haproxy使用。
[root@localhost peter]# useradd -r haproxy
第九步:在/etc/下新增一個haproxy的資料夾,並放入設定檔,檔名為:haproxy.cfg。
[root@localhost peter]# mkdir /etc/haproxy
[root@localhost peter]# vi /etc/haproxy/haproxy.cfg
設定檔就請參考官方網站囉,或是在解壓縮的資料夾中有個example資料夾,裡面有很多以"cfg"為副檔名的檔案,都可以作為參考。
第十步:啟動Haproxy。
[root@localhost peter]# service haproxy start
Reloading systemd: [ OK ]
Starting haproxy (via systemctl): [ OK ]
若要重新啟動、關閉服務,指令如下:
#啟動服務
[root@localhost peter]# systemctl start haproxy.service
#重新啟動服務
[root@localhost peter]# systemctl restart haproxy.service
#關閉服務
[root@localhost peter]# systemctl stop haproxy.service
以上我們就安裝完成了,可以開始更詳細的設定囉!