解讀haproxy負(fù)載均衡
在做反向代理服務(wù)器的負(fù)載均衡時(shí),我們通常會(huì)使用nginx的均衡配置。其實(shí),haproxy的負(fù)載均衡也是屬于這一類的。那么關(guān)于這方面的配置過程我們現(xiàn)在來進(jìn)行一下講解。首先,對(duì)haproxy進(jìn)行一個(gè)簡(jiǎn)單的介紹,之后就是安裝和配置環(huán)節(jié)了。
HAProxy介紹
反向代理服務(wù)器,支持雙機(jī)熱備支持虛擬主機(jī),但其配置簡(jiǎn)單,擁有非常不錯(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.
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
- mvhaproxy-1.3.14.2haproxy
- 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
#p#3.通過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
- optionhttplog
- optiondontlognull
- 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#健康檢測(cè)
- 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)。
4.后端apache日志處理
- 配置httpd.conf
- LogFormat “%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b " combined
- CustomLog /var/log/httpd/access_log combined
5.虛擬主機(jī)不記錄檢測(cè)日志:
- 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