- 論壇徽章:
- 0
|
測試部署結構如下:
192.168.1.1 192.168.1.11-192.168.1.14 192.168.1.2
-------+-----------+-----+-----+-----+--------+----
| | | | | _|_db
+--+--+ +-+-+ +-+-+ +-+-+ +-+-+ (___)
| LB1 | | A | | B | | C | | D | (___)
+-----+ +---+ +---+ +---+ +---+ (___)
haproxy 4 cheap web servers
1.下載haproxy:
cd /usr/local/
wget http://haproxy.1wt.eu/download/1.2/src/haproxy-1.2.18.tar.gz
tar zxvf haproxy-1.2.18.tar.gz
mv haproxy-1.2.18 haproxy
cd haproxy
2. 編譯安裝:
make TARGET=linux26 CPU=x86-64
我這里是64bit的redhat,如果你是32bit,使用命令:
make TARGET=linux26 CPU=i686
在當前目錄下生成了haproxy
3. 復制并修改相應的實例文件:
mkdir /etc/haproxy
cp /usr/local/haproxy/examples/haproxy.cfg /etc/haproxy/
cp /usr/local/haproxy/examples/haproxy.init /etc/init.d/haproxy
chmod a+x /etc/init.d/haproxy
建立haproxy進程用戶和用戶組:
useradd -M -d /www/wwwroot -s /sbin/nologin www
vi /etc/haproxy/haproxy.cfg輸入下面內容:
# this config needs haproxy-1.1.28 or haproxy-1.2.1
global
log 127.0.0.1 local0 notice
maxconn 51200
ulimit-n 65536
chroot /usr/share/haproxy
user www
group www
daemon
quiet
nbproc 2
defaults
log global
mode http
option httplog
retries 3
redispatch
maxconn 51200
contimeout 5000
clitimeout 50000
srvtimeout 50000
listen webfarm 192.168.1.1:80
mode http
balance roundrobin
cookie SERVERID insert indirect
option httpchk HEAD /index.html HTTP/1.0
server webA 192.168.1.11:80 cookie A check inter 1000 rise 1 fall 3
server webB 192.168.1.12:80 cookie B check inter 1000 rise 1 fall 3
server webC 192.168.1.13:80 cookie C check inter 1000 rise 1 fall 3
server webD 192.168.1.14:80 cookie D check inter 1000 rise 1 fall 3
總結:
haproxy(1.2.18版本)的負載均衡算法只有兩種:roundrobin(輪巡)source(基于來源ip的)。
計劃在version 1.3.10加入uri算法。
haproxy實現(xiàn)了Load Balancer(類似LVS的NAT方式)和對后端的realserver的健康檢查,但如果要實現(xiàn)高可用性還需要和keeplived或heartbeat結合。
不過keeplived本身也具有對后端realserver的健康檢查。
從上面可以看出,如果僅僅是使用它做負載均衡的話,我個人感覺他應該比nginx好一些,比LVS差一些。
做LB的比較關系:LVS > haproxy > nginx
不過要是haproxy加入vrrp framework,然后做成一個LB盒子應該不錯。:) |
|