http層負載均衡之 haproxy實踐篇

方案

上篇文章講到了負載均衡的相關理論知識,這篇文章我打算講講實踐方法以及實踐中遇到的問題linux

方案:haproxy http層負載均衡web

安裝一個haproxy服務,兩個web服務redis

haproxy:192.168.1.227:80算法

web1 http://192.168.1.226:8081/loginvim

web2 http://192.168.1.246:8888/login後端

web服務自行準備,文章中就不說了瀏覽器

負載均衡算法爲輪詢調度服務器

會話保持實現方式爲cookie識別,插入cookiecookie

優勢:session

1 配置簡單

2 提供會話保持功能

3 性能不錯

安裝與配置

安裝

複製代碼
tar -zxvf haproxy-1.49.tar.gz 
cd haproxy-1.4.9 
make TARGET=linux26 PREFIX=/haproxy 
make install PREFIX=/haproxy 建立日誌目錄 mkdir /home/haproxy/logs/ 建立配置文件目錄 mkdir /etc/haproxy/
複製代碼

PREFIX=/haproxy : 安裝目錄前綴

啓動程序將安裝在 /haproxy/sbin/haproxy

配置

vim /etc/haproxy/haproxy.cfg

複製代碼
global log 127.0.0.1 local3 #log 127.0.0.1 local1 notice #log loghost local0 info maxconn 4096 #chroot /usr/local/haproxy #chroot /home/haproxy uid 502 gid 502 daemon nbproc 1 pidfile /home/haproxy/logs/haproxy.pid #debug #quiet defaults log global mode http option httplog option dontlognull option forwardfor option redispatch log 127.0.0.1 local3 retries 3 maxconn 32000 balance roundrobin stats uri /haproxy-stats contimeout 5000 clitimeout 50000 srvtimeout 50000 listen web_proxy *:80 appsession JSESSIONID len 52 timeout 3h #插入cookie的方式 cookie SRV insert indirect nocache #模式有http tcp health mode http stats enable stats hide-version #查看狀態 stats uri /haproxy-stats stats refresh 10s monitor-uri /haproxy_test #負載均衡方案:輪調 balance roundrobin option httpclose #後端能夠獲取客戶端的真實ip option forwardfor #健康檢查 option httpchk HEAD /login HTTP/1.0 #option httpchk GET /ping.jsp #後端真實服務 server webA 192.168.1.226:8081 cookie A check server webB 192.168.1.246:8888 cookie B check
複製代碼

這裏注意配置檢查地址

option httpchk HEAD /login HTTP/1.0

啓動

/haproxy/sbin/haproxy -f /etc/haproxy/haproxy.cfg

查看進程

ps -ef|grep haproxy

關閉進程

kill –9 pid

查看監控頁面

http://192.168.1.227/haproxy-stats

以下圖:注意狀態一欄顯示200,若是不是則表示web服務器未啓動,或者健康檢查連接不可訪問

image

測試

而後打開不一樣的瀏覽器,模擬用戶訪問

http://192.168.1.227/login/

會看到

image

 

image

證實請求被分發到不一樣的web服務器了

查看cookie

image

cookie被加入了SRV=A

會話保持的流程

1.客戶端首次請求,通過haproxy到web服務端時,web服務端set-cookie並響應到haproxy

2.haproxy在cookie後插入SRV=A,並響應客戶端

3.客戶端第二次請求,通過haproxy時,haproxy將srv後綴去掉,而後請求服務端

總結

該方案解決的問題

1.負載均衡,並解決web服務的單點故障

2.會話保持

存在的缺點

1.web服務器的session保存存在單點故障,即其中一臺web服務器宕機以後,存儲在上面的session也會丟失

2.負載均衡服務器存在單點故障

相關文章
相關標籤/搜索