HAProxy配置
作者: JeremyWei
網址: http://weizhifeng.net/using-haproxy.html
前言
Haproxy是一個負載均衡服務器,能夠提供4層,7層代理,並能支持上萬級別的連接,你可以直接在WEB服務器前端加上它,而不影響應用的訪問,完全透明。
安裝
$ wget http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.8.tar.gz $ tar -zxvf haproxy-1.4.8.tar.gz $ cd haproxy-1.4.8 $ ./configure --prefix=/path/to/haproxy $ make && make install
配置
首先要添加haproxy:haproxy用戶:
$ groupadd haproxy $ useradd -g haproxy haproxy
查看uid和gid
$ sudo cat /etc/passwd |grep haproxy
編輯haproxy.cfg,添加如下內容:
global log 127.0.0.1 local3 maxconn 4096 #最大連接數 chroot /path/to/haproxy #安裝目錄 uid 535 #用戶haproxy gid 520 #組haproxy daemon #守護進程運行 nbproc 1 #進程數量 pidfile logs/haproxy.pid defaults log 127.0.0.1 local3 mode http #layer 7代理 option httplog option httpclose option dontlognull option forwardfor retries 2 maxconn 2000 balance roundrobin stats uri /haproxy-stats contimeout 5000 clitimeout 50000 srvtimeout 50000 frontend http-in bind *:80 #監聽地址 default_backend pool1 backend pool1 option httpchk GET /test.php #用來做健康檢查 stats refresh 2 server server1 192.168.1.1:82 weight 3 maxconn 32 check #check表示對這個server進行健康檢查 server server2 192.168.1.2:82 weight 3 maxconn 32 check
查看後端server狀態: http://example.com/haproxy-stats
啟動
$ sudo ./sbin/haproxy -f haproxy.cfg
重啟
$ sudo ./sbin/haproxy -f haproxy.cfg -st `cat logs/haproxy.pid`
日誌問題
有童鞋說日誌怎麼也寫不進去,我也遇到了這個問題,在這里分享下。編輯/etc/syslog.conf文件,添加:
local3.* /var/log/haproxy.log
編輯/etc/sysconfig/syslog文件,把
SYSLOGD_OPTIONS="-m 0"
改成
SYSLOGD_OPTIONS="-r -m 0" #enables logging from remote machines
重啟syslogd:
/etc/init.d/syslog restart
通過tail應該可以看到日誌輸出了:
tail -f -n 30 /var/log/haproxy.log
參考:
http://blog.chenlb.com/2009/06/install-haproxy-and-configure-load-balance.html
http://haproxy.1wt.eu/download/1.4/doc/configuration.txt