haproxy(簡稱HA)
HAProxy提供高可用性、負載均衡以及基于TCP和HTTP應用的代理,支援虛拟主機,它是免費、快速并且可靠的一種解決方案
<a href="http://haproxy.1wt.eu/download/1.3/src/haproxy-1.3.20.tar.gz">http://haproxy.1wt.eu/download/1.3/src/haproxy-1.3.20.tar.gz</a>
# 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
方式二(frontend+backend):
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
啟動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
檢視haproxy頁面:
使用者名:ming 密碼:123456
驗證效果:
在2主機上分别建2個頁面1.html 内容寫各自主機ip
<a href="http://192.168.1.10:1080/1.html">http://192.168.1.10:1080/1.html</a>
第一次會顯示192.168.1.10
第二次會顯示192.168.1.12
注:
1、1080是haproxy的端口号,是随意寫的,可改
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中的參數
本文轉自linux部落格51CTO部落格,原文連結http://blog.51cto.com/yangzhiming/865706如需轉載請自行聯系原作者
yangzhimingg