haproxy羣集搭建web羣集

                        haproxy羣集調度器搭建web羣集

1haproxy調度器是目前市場上比較流行的羣集調度器,當然調度器有好多種類:lvsnginx、和haproxy,接下來對它們進行比較看看它們的優缺點:

lvs:工作在七層模型的4層傳輸層:根據ip+端口進行訪問;不考慮訪問的內容,可以任意訪問,基於ip地址,能實現所有應用構建的羣集,性能好,可以和keepalived完美結合。穩定性能好。健康檢查節點服務器性能較好;搭建時結構相對複雜

nginx:工作在7層應用層,根據內容、ip網頁進行給用戶分配內容,健康檢查節點服務器功能較弱,要配合upstream模塊可對羣集進行管理

haproxy:同樣也工作在7層的程序,但它的配置簡單,也可以和keepalived完美結合

2haproxyhttp的請求:

分爲兩種方式:

GET:提交用戶的訪問,屬於明文提交,提交內容不得超過8kb,安全性差

POST: 屬於加密傳輸;安全性較好

通過訪問一般反饋給客戶端的狀態碼爲:(200.301)如果返回的是(400500)表示發生異常或者錯誤

3:負載均衡羣集的調度算法(lvsnginxharpoxy常用)

1RR:輪詢調度算法;根據節點服務器的權重輪詢分配訪問請求

2LC:最小連接數算法;根據節點服務器的連接數多少分配給連接數最少的節點服務器

3SH: 基於來源訪問調度算法法;根據實際環境情況,對訪問客戶進行有選擇的進行連接節點服務器

當然還有許多的web羣集調度器;如梭子魚、綠盟等

4:本次使用的環境案例是兩臺web服務和一臺harpoxy服務器

 

 

編譯安裝Haproxy

#yum  -y  install pcre-devel  bzip2-devel 解決依賴關係安裝關係庫

 wKiom1j9-azwmh6bAAAGekE5HYg626.png-wh_50

[root@centos1 haproxy-1.4.24]# tar xf /mnt/haproxy-1.4.24.tar.gz -C /usr/src

wKioL1j9-cTQwYPWAAAHAopdSAo913.png-wh_50 

[root@centos1 haproxy-1.4.24]# cd /usr/src/haproxy-1.4.24

#make TARGET=linux26  使用linux2.6版本內核

#make install

wKiom1j9-djyrgOyAAAGK1ZHips895.png-wh_50 wKioL1j9-erhQEQLAAAFSyAoSGM039.png-wh_50

haproxy服務器配置

1)、建立haproxy的配置文件

#mkdir   /etc/haproxy

wKiom1j9-gSzr4XBAAAF-myuvNI876.png-wh_50 

#cp  examples/haproxy.cfg   /etc/haproxy/    haproxy文件的模板複製的/etc/haproxy目錄中文以後的修改增加便捷

wKiom1j9-hjThKukAAAIclChcWc833.png-wh_50 

 

#vim   /etc/haproxy/haproxy.cfg   文件的配置內容有三部分 global全局配置、defaults默認配置、listen應用組件配置配置內容如下

global

        log 127.0.0.1   local0

        log 127.0.0.1   local1 notice

        #log loghost    local0 info

        maxconn 4096

#       chroot /usr/share/haproxy

        uid 99

        gid 99

        daemon

        nbproc 4

        #debug

        #quiet

wKiom1j9-i3yXjIbAAA-K3XoxEo295.png-wh_50 

 

defaults

        log     global

        mode    http

        option  httplog

        option  dontlognull

        retries 3

#       redispatch

        maxconn 2000

        contimeout      5000

        clitimeout      50000

        srvtimeout      50000

wKiom1j9-kGSvYr9AABBbgOLYCI386.png-wh_50 

 listen webcluster 0.0.0.0:80

  option httpchk GET /index.html

  balance roundrobin

  server inst1 192.168.2.2:80 check inter 2000 fall 3

  server inst2 192.168.2.3:80 check inter 2000 fall 3

wKiom1j9-lPBETfdAAArbBZPvJw984.png-wh_50 

(2)創建自啓動腳本

#cp/usr/src/haproxy-1.4.24/examples/haproxy.init  /etc/init.d/haproxy

wKiom1j9-mWjXD9HAAAFjbEjbB0922.png-wh_50 

# ln -s /usr/local/sbin/haproxy  /usr/sbin/haproxy  做軟連接,在環境變量中使用haproxy

wKioL1j9-neCV6b4AAAEOE6RdsE963.png-wh_50 

# chmod  +x /etc/init.d/haproxy 給文件可執行權限

wKiom1j9-o-Akl5QAAAD3XJwI6U043.png-wh_50 

#service  haproxy   start   

#service  iptables  stop

wKiom1j9-qHyDpuCAAAPbaAc64w772.png-wh_50 

(3)測試web羣集  web1網頁內容爲how  are you  web2 內容爲welcome to beijing 爲了測試負載均衡所以將網頁內容設置爲不同

wKioL1j9-rWDLu-9AABofGkYO7Y496.png-wh_50wKiom1j9-sqCJX61AACRdv_840w485.png-wh_50 

(4)haproxy的日誌   ;由於haproxy的日誌存放在系統日誌中不方便管理所以將日誌的等級分爲不同的日誌從放目錄:

創建一個關於haproxy的目錄爲以後的管理方便:

touch  /etc/rsyslog.d/haproxy.conf的文件

wKiom1j9-tyzunvdAAAEbDP8BxI521.png-wh_50 

在配置/etc/rsyslog.d/haproxy.conf文件之前先修改/etc/haproxy/haproxy.cfg文件內容如下:  完成後重啓haproxy服務

wKioL1j9-u6gohNoAAAZ09mDXzU977.png-wh_50 

vim  /etc/rsyslog.d/haproxy.conf

if ($programname == 'haproxy' and $syslogseverity-text == 'info') then -/var/log/haproxy/haproxy-info.log

& ~

if ($programname == 'haproxy' and $syslogseverity-text == 'notice') then -/var/log/haproxy/haproxy-notice.log

& ~wKiom1j9-wHD5r6QAAA_3lot3UE563.png-wh_50

配置完成後要重新啓動rsyslog服務   service  rsyslog  restart

wKioL1j9-xLCg3RdAAAHs3zXbtw832.png-wh_50 

測試日誌信息

# tail -f /var/log/haproxy/haproxy-info.log   tail -f 表示動態刷新,查看

然後在客戶機上訪問,觀察日誌

wKioL1j9-ySRkD9LAAAmVBSVdY0020.png-wh_50 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章