haproxy(簡稱HA,web負載均衡)


haproxy(簡稱HA)


HAProxy提供高可用性、負載均衡以及基於TCP和HTTP應用的代理,支持虛擬主機,它是免費、快速並且可靠的一種解決方案


http://haproxy.1wt.eu/download/1.3/src/haproxy-1.3.20.tar.gz


# tar zcvf haproxy-1.3.20.tar.gz

# cd haproxy-1.3.20

# vi Makefile

PREFIX = /usr/local/haproxy   (原爲PREFIX = /usr/local)

:wq

# make TARGET=linux26

# make install

 

haproxy應用時有2種方式,linsten方式和frontend+backend方式

 

方式一(listen):

 

# vi /usr/local/haproxy/haproxy.cfg


global

log 127.0.0.1 local0
maxconn 4096
chroot /usr/local/haproxy
uid 99
gid 99
daemon
nbproc 1
pidfile /usr/local/haproxy/haproxy.pid


defaults

log global
log 127.0.0.1 local3
option httplog
option httpclose
option dontlognull
option forwardfor
option redispatch
retries 2
maxconn 2000
mode http
stats uri /haproxy-status
stats auth ming:123456
stats refresh 30s
monitor-uri /site_status
contimeout 5000
clitimeout 50000
srvtimeout 50000

 


listen web 192.168.1.10:1080
balance roundrobin
server yang 192.168.1.10:80 check
server ming 192.168.1.12:80 check

 

:wq

 

方式二(frontend+backend):

 

# vi /usr/local/haproxy/haproxy.cfg


global

log 127.0.0.1 local0
maxconn 4096
chroot /usr/local/haproxy
uid 99
gid 99
daemon
nbproc 1
pidfile /usr/local/haproxy/haproxy.pid



defaults

log global
log 127.0.0.1 local3
option httplog
option httpclose
option dontlognull
option forwardfor
option redispatch
retries 2
maxconn 2000
mode http
stats uri /haproxy-status
stats auth ming:123456
stats refresh 30s
monitor-uri /site_status
contimeout 5000
clitimeout 50000
srvtimeout 50000

frontend web 192.168.1.10:1080       
default_backend aa  

backend aa 
balance roundrobin    
server yang  192.168.1.10:80 check  
server  ming  192.168.1.12:80 check

:wq

 

啓動haproxy

# /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg

開機自啓動:

# vi /etc/rc.local

 /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg

:wq

查看haproxy頁面:

http://192.168.1.10:1080/haproxy-status   

用戶名:ming   密碼:123456

 

驗證效果:

在2主機上分別建2個頁面1.html  內容寫各自主機ip

 

http://192.168.1.10:1080/1.html

第一次會顯示192.168.1.10

第二次會顯示192.168.1.12

 

注:

1、1080是haproxy的端口號,是隨意寫的,可改

2、可以把ip改成域名(如www.ming.com),甚至可以把web的80端口改了,讓haproxy用80,這樣訪問時就不能再加端口了

3、電腦重啓後/etc/init.d/httpd 會被改爲/etc/init.d/httpd.rpmorig ,要自己改回來,chkconfig開機啓動命令也要再重寫一遍,原因不詳


 

附:


global:參數是進程級的,通常和操作系統(OS)相關

defaults:配置默認參數,這些參數可以被利用配置到frontend,backend,listen組件

frontend:接收請求的前端虛擬節點,Frontend可以根據規則直接指定具體使用後端的 backend(可動態選擇)

backend:後端服務集羣的配置,是真實的服務器,一個Backend對應一個或者多個實體服務器

listen:Frontend和Backend的組合體

 

log 127.0.0.1 local0             使用系統的syslog記錄日誌

maxconn 4096                     限制單個進程的最大連接數

option redispatch                 在連接失敗或斷開的情況下,允許當前會話被重新分發

retries 2                             設置在一個服務器上鍊接失敗後的重連次數

balance roundrobin            設置服務器分配算法爲輪詢(即交替訪問)
 

option dontlognull              不記錄空連接

contimeout 5000               設置等待連接到服務器成功的最大時間

clitimeout 50000              設置客戶端的最大超時時間

srvtimeout 50000              設置服務器端的最大超時時間

nbproc 1                          指定作爲守護進程運行的時候,要創建多少個進程,默認只創建一個,需要daemon開啓模式

daemon                            讓進程在後臺運行,即作爲守護進程運行,正式運行的時候開啓,此處先禁止,等同於在命令行添加參數 -D


 

debug                             設置debug模式運行,與daemon模式互斥,等同於在命令行添加參數 -d


 

1080                                監聽端口(隨意)

mode http                         http的7層模式


 

stats refresh 30s                 統計頁面自動刷新時間

stats uri /haproxy-stats          統計頁面URL


 

stats realm Haproxy\ Statistics             統計頁面密碼框上提示文本

stats auth ming:123456               統計頁面用戶名和密碼設置

stats hide-version                      隱藏統計頁面上HAProxy的版本信息

monitor-uri /site_status         網站健康檢測URL,用來檢測HAProxy管理的網站是否可以用,正常返回200,不正常返回500

 

weight  -- 調節服務器的負重

check -- 允許對該服務器進行健康檢查

inter  -- 設置連續的兩次健康檢查之間的時間,單位爲毫秒(ms),默認值 2000

rise  -- 指定多少次連續成功的健康檢查後,即可認定該服務器處於可操作狀態,默認值 2

fall  -- 指定多少次不成功的健康檢查後,認爲服務器爲當掉狀態,默認值 3

 

balance roundrobin     簡單的輪詢

balance source           根據請求的源IP 

balance uri                根據請求的url
 
balance url_param     根據請求RUL中的參數

 

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