HAProxy是一款反向代理服務(wù)器工具,通過它,可以實(shí)現(xiàn)負(fù)載均衡。它支持雙機(jī)熱備支持虛擬主機(jī),但其配置簡單,擁有非常不錯(cuò)的服務(wù)器健康檢查功能,當(dāng)其代理的后端服務(wù)器出現(xiàn)故障, HAProxy會(huì)自動(dòng)將該服務(wù)器摘除,故障恢復(fù)后再自動(dòng)將該服務(wù)器加入。新的1.3引入了frontend,backend,frontend根據(jù)任意HTTP請(qǐng)求頭內(nèi)容做規(guī)則匹配,然后把請(qǐng)求定向到相關(guān)的backend.
利用HAPorxy實(shí)現(xiàn)負(fù)載均衡
1. 利用HAProxy實(shí)現(xiàn)負(fù)載均衡
192.168.169.137 (haproxy)———負(fù)載均衡———-(192.168.169.117;192.168.169.118)
安裝配置HAproxy
cd /usr/local/
wget http://haproxy.1wt.eu/download/1.3/src/haproxy-1.3.14.2.tar.gz
tar zxvf haproxy-1.3.14.2.tar.gz
mv haproxy-1.3.14.2 haproxy
cd haproxy
make TARGET=linux26
2. 創(chuàng)建配置文件
# vi haproxy.cfg
global
maxconn 5120
chroot /usr/local/haproxy
uid 99
gid 99
daemon
quiet
nbproc 2 #通過nbproc多設(shè)置幾個(gè)haproxy并發(fā)進(jìn)程,這樣每個(gè)進(jìn)程的task_queue相對(duì)就會(huì)短很多,性能自然就能提高不少
#pidfile /var/run/haproxy-private.pid
defaults
log global
mode http
option httplog
option dontlognull
log 127.0.0.1 local3
retries 3
option redispatch
maxconn 2000
contimeout 5000
clitimeout 50000
srvtimeout 50000
listen webfarm 0.0.0.0:80
mode http
stats uri /haproxy-stats #監(jiān)控haproxy狀態(tài)
stats realm Haproxy\ statistics
stats auth netseek:52netseek #設(shè)置狀態(tài)監(jiān)控的用戶名為netseek密碼為52netseek
balance roundrobin #負(fù)載均衡算法
cookie SERVERID insert indirect
option httpclose #
option forwardfor #apache日志轉(zhuǎn)發(fā)功能
option httpchk HEAD /check.txt HTTP/1.0 #健康檢測
server app_bbs1 192.168.169.117:80 cookie app1inst1 check inter 2000 rise 2 fall 5
server app_bbs2 192.168.169.118:80 cookie app1inst2 check inter 2000 rise 2 fall 5
syslog.conf里加一行
local3.* /var/log/haproxy.log
# touch /var/log/haproxy.log
# chown haproxy:haproxy /var/log/haproxy.log
# chmod u+x /var/log/haproxy.log
# tail –f /var/log/harpoxy.log 監(jiān)控日志
# ./haproxy -f haproxy.cfg 啟動(dòng)服務(wù).
監(jiān)控狀態(tài)圖示http://192.168.169.137/haproxy-stats ,輸入用戶名密碼查看狀態(tài)。
后端apache日志處理
配置httpd.conf
LogFormat “%{X-Forwarded-For}i %l %u %t \”%r\” %>s %b ” combined
CustomLog /var/log/httpd/access_log combined
虛擬主機(jī)不記錄檢測日志:
SetEnvIf Request_URI “^/check\.txt$” dontlog
LogLevel warn
ErrorLog /var/log/httpd/vhost_error.log
CustomLog /var/log/httpd/vhost_access.log combined env=!dontlog
相關(guān)介紹
#./haproxy –help //haproxy相關(guān)命令參數(shù)介紹.
haproxy -f <配置文件> [-n 并發(fā)連接總數(shù)] [-N 每個(gè)偵聽的并發(fā)數(shù)] [-d] [-D] [-q] [-V] [-c] [-p] [-s] [-l] [-dk]
[-ds] [-de] [-dp] [-db] [-m <內(nèi)存限制M>] [{-sf|-st} pidlist...]
-d 前臺(tái),debug模式
-D daemon模式啟動(dòng)
-q 安靜模式,不輸出信息
-V 詳細(xì)模式
-c 對(duì)配置文件進(jìn)行語法檢查
-s 顯示統(tǒng)計(jì)數(shù)據(jù)
-l 顯示詳細(xì)統(tǒng)計(jì)數(shù)據(jù)
-dk 不使用kqueue
-ds 不使用speculative epoll
-de 不使用epoll
-dp 不使用poll
-db 禁用后臺(tái)模式,程序跑在前臺(tái)
-sf
程序啟動(dòng)后向pidlist里的進(jìn)程發(fā)送FINISH信號(hào),這個(gè)參數(shù)放在命令行的最后。
-st
程序啟動(dòng)后向pidlist里的進(jìn)程發(fā)送TERMINATE信號(hào),這個(gè)參數(shù)放在命令行的最后。
利用HAPorxy實(shí)現(xiàn)負(fù)載均衡
1. 利用HAProxy實(shí)現(xiàn)負(fù)載均衡
192.168.169.137 (haproxy)———負(fù)載均衡———-(192.168.169.117;192.168.169.118)
安裝配置HAproxy
cd /usr/local/
wget http://haproxy.1wt.eu/download/1.3/src/haproxy-1.3.14.2.tar.gz
tar zxvf haproxy-1.3.14.2.tar.gz
mv haproxy-1.3.14.2 haproxy
cd haproxy
make TARGET=linux26
2. 創(chuàng)建配置文件
# vi haproxy.cfg
global
maxconn 5120
chroot /usr/local/haproxy
uid 99
gid 99
daemon
quiet
nbproc 2 #通過nbproc多設(shè)置幾個(gè)haproxy并發(fā)進(jìn)程,這樣每個(gè)進(jìn)程的task_queue相對(duì)就會(huì)短很多,性能自然就能提高不少
#pidfile /var/run/haproxy-private.pid
defaults
log global
mode http
option httplog
option dontlognull
log 127.0.0.1 local3
retries 3
option redispatch
maxconn 2000
contimeout 5000
clitimeout 50000
srvtimeout 50000
listen webfarm 0.0.0.0:80
mode http
stats uri /haproxy-stats #監(jiān)控haproxy狀態(tài)
stats realm Haproxy\ statistics
stats auth netseek:52netseek #設(shè)置狀態(tài)監(jiān)控的用戶名為netseek密碼為52netseek
balance roundrobin #負(fù)載均衡算法
cookie SERVERID insert indirect
option httpclose #
option forwardfor #apache日志轉(zhuǎn)發(fā)功能
option httpchk HEAD /check.txt HTTP/1.0 #健康檢測
server app_bbs1 192.168.169.117:80 cookie app1inst1 check inter 2000 rise 2 fall 5
server app_bbs2 192.168.169.118:80 cookie app1inst2 check inter 2000 rise 2 fall 5
syslog.conf里加一行
local3.* /var/log/haproxy.log
# touch /var/log/haproxy.log
# chown haproxy:haproxy /var/log/haproxy.log
# chmod u+x /var/log/haproxy.log
# tail –f /var/log/harpoxy.log 監(jiān)控日志
# ./haproxy -f haproxy.cfg 啟動(dòng)服務(wù).
監(jiān)控狀態(tài)圖示http://192.168.169.137/haproxy-stats ,輸入用戶名密碼查看狀態(tài)。
后端apache日志處理
配置httpd.conf
LogFormat “%{X-Forwarded-For}i %l %u %t \”%r\” %>s %b ” combined
CustomLog /var/log/httpd/access_log combined
虛擬主機(jī)不記錄檢測日志:
SetEnvIf Request_URI “^/check\.txt$” dontlog
LogLevel warn
ErrorLog /var/log/httpd/vhost_error.log
CustomLog /var/log/httpd/vhost_access.log combined env=!dontlog
相關(guān)介紹
#./haproxy –help //haproxy相關(guān)命令參數(shù)介紹.
haproxy -f <配置文件> [-n 并發(fā)連接總數(shù)] [-N 每個(gè)偵聽的并發(fā)數(shù)] [-d] [-D] [-q] [-V] [-c] [-p
[-ds] [-de] [-dp] [-db] [-m <內(nèi)存限制M>] [{-sf|-st} pidlist...]
-d 前臺(tái),debug模式
-D daemon模式啟動(dòng)
-q 安靜模式,不輸出信息
-V 詳細(xì)模式
-c 對(duì)配置文件進(jìn)行語法檢查
-s 顯示統(tǒng)計(jì)數(shù)據(jù)
-l 顯示詳細(xì)統(tǒng)計(jì)數(shù)據(jù)
-dk 不使用kqueue
-ds 不使用speculative epoll
-de 不使用epoll
-dp 不使用poll
-db 禁用后臺(tái)模式,程序跑在前臺(tái)
-sf
程序啟動(dòng)后向pidlist里的進(jìn)程發(fā)送FINISH信號(hào),這個(gè)參數(shù)放在命令行的最后。
-st
程序啟動(dòng)后向pidlist里的進(jìn)程發(fā)送TERMINATE信號(hào),這個(gè)參數(shù)放在命令行的最后。

