当前位置:首页 > redhat 6.4(64位)下HAproxy+Keepalived 负载均衡架构搭建
redhat 6.4(64位)下HAproxy+Keepalived 负载均衡架构搭建(实践版) 一、环境
系统:redhat 6.4 64位
软件:haproxy-1.4.25.tar.gz
keepalived-1.2.12.tar.gz
网络:
MASTER_IP(haproxy)=192.168.101.1
BACKUP_IP(haproxy)=192.168.101.2
VIP(虚拟IP)=192.168.101.4
关闭SELINUX
# vi /etc/sysconfig/config (修改)
SELINUX=disabled
# setenforce 0 (这个为临时生效,上面的为重启后生效)
关闭防火墙
二、haproxy的安装配置(两台Haproxy的安装配置步骤一样)
1、192.168.101.1主机上的安装haproxy
检查系统的内核版本
# uname -a
Linux rac1 2.6.32-358.el6.x86_64 #1 SMP Tue Jan 29 11:47:41 EST 2013 x86_64 x86_64 x86_64 GNU/Linux
#使用uname -r查看内核,如:2.6.18-371.el5,此时该参数就为linux26
如x86_64 x86_64 x86_64 GNU/Linux,此时该参数就为x86_64
# tar zxvf haproxy-1.4.25.tar.gz
# cd haproxy-1.4.25
# make TARGET=linux2628 ARCH=x86_64 PREFIX=/usr/local/haproxy \\\\编译参数参考README,其中TARGET是指定内核版本,ARCH指定CPU架构,PREFIX=/usr/local/haproxy安装目录。
gcc -m64 -march=x86-64 -g -o haproxy src/haproxy.o src/sessionhash.o src/base64.o src/protocols.o src/uri_auth.o src/standard.o src/buffers.o src/log.o src/task.o src/time.o src/fd.o src/pipe.o src/regex.o src/cfgparse.o src/server.o src/checks.o src/queue.o src/client.o src/proxy.o src/stick_table.o src/proto_uxst.o src/proto_http.o src/stream_sock.o src/appsession.o src/backend.o src/lb_chash.o src/lb_fwlc.o src/lb_fwrr.o src/lb_map.o src/stream_interface.o src/dumpstats.o src/proto_tcp.o src/session.o src/hdr_idx.o src/ev_select.o src/signal.o src/acl.o src/pattern.o src/memory.o src/freq_ctr.o src/auth.o src/ev_poll.o src/ev_epoll.o src/ev_sepoll.o ebtree/ebtree.o ebtree/eb32tree.o ebtree/eb64tree.o ebtree/ebmbtree.o ebtree/ebsttree.o ebtree/ebimtree.o ebtree/ebistree.o -lcrypt
注:README编译参数参考
Also, you might want to build with libpcre support, which will provide a very efficient regex implementation and will also fix some badness on Solaris' one.
To build haproxy, you have to choose your target OS amongst the following ones and assign it to the TARGET variable :
- linux22 for Linux 2.2
- linux24 for Linux 2.4 and above (default)
- linux24e for Linux 2.4 with support for a working epoll (> 0.21) - linux26 for Linux 2.6 and above
- linux2628 for Linux 2.6.28 and above (enables splice and tproxy) - solaris for Solaris 8 or 10 (others untested) - freebsd for FreeBSD 5 to 8.0 (others untested) - osx for Mac OS/X
- openbsd for OpenBSD 3.1 to 5.2 (others untested) - aix52 for AIX 5.2 - cygwin for Cygwin
- generic for any other OS.
- custom to manually adjust every setting
# make install PREFIX=/usr/local/haproxy
install -d /usr/local/haproxy/sbin
install haproxy /usr/local/haproxy/sbin
install -d /usr/local/haproxy/share/man/man1
install -m 644 doc/haproxy.1 /usr/local/haproxy/share/man/man1 install -d /usr/local/haproxy/doc/haproxy
for x in configuration architecture haproxy-en haproxy-fr; do \\
install -m 644 doc/$x.txt /usr/local/haproxy/doc/haproxy ; \\ done
安装完毕,在/usr/local/haproxy/目录下会看到三个目录:doc、sbin、share
2、安装完毕后,创建配置文件和启动文件
# cd /usr/local/haproxy
# cp /home/soft/haproxy-1.4.25/examples/haproxy.cfg /usr/local/haproxy/conf/
默认haproxy配置文件内容:
# more /home/soft/haproxy-1.4.25/examples/haproxy.cfg # this config needs haproxy-1.1.28 or haproxy-1.2.1
global
log 127.0.0.1 local0
log 127.0.0.1 local1 notice #log loghost local0 info maxconn 4096
chroot /usr/share/haproxy uid 99 gid 99 daemon #debug #quiet
defaults
log global mode http option httplog option dontlognull retries 3 redispatch maxconn 2000
contimeout 5000 clitimeout 50000 srvtimeout 50000
listen appli1-rewrite 0.0.0.0:10001 cookie SERVERID rewrite balance roundrobin
server app1_1 192.168.34.23:8080 cookie app1inst1 check inter 2000 rise
2 fall 5
server app1_2 192.168.34.32:8080 cookie app1inst2 check inter 2000 rise 2 fall 5
server app1_3 192.168.34.27:8080 cookie app1inst3 check inter 2000 rise 2 fall 5
server app1_4 192.168.34.42:8080 cookie app1inst4 check inter 2000 rise 2 fall 5
listen appli2-insert 0.0.0.0:10002 option httpchk balance roundrobin
cookie SERVERID insert indirect nocache
server inst1 192.168.114.56:80 cookie server01 check inter 2000 fall 3 server inst2 192.168.114.56:81 cookie server02 check inter 2000 fall 3 capture cookie vgnvisitor= len 32
option httpclose # disable keep-alive
rspidel ^Set-cookie:\\ IP= # do not let this cookie tell our intern al IP address
listen appli3-relais 0.0.0.0:10003 dispatch 192.168.135.17:80
listen appli4-backup 0.0.0.0:10004 option httpchk /index.html option persist balance roundrobin
server inst1 192.168.114.56:80 check inter 2000 fall 3
server inst2 192.168.114.56:81 check inter 2000 fall 3 backup
listen ssl-relay 0.0.0.0:8443 option ssl-hello-chk balance source
server inst1 192.168.110.56:443 check inter 2000 fall 3 server inst2 192.168.110.57:443 check inter 2000 fall 3 server back1 192.168.120.58:443 backup
listen appli5-backup 0.0.0.0:10005 option httpchk * balance roundrobin
cookie SERVERID insert indirect nocache
server inst1 192.168.114.56:80 cookie server01 check inter 2000 fall 3 server inst2 192.168.114.56:81 cookie server02 check inter 2000 fall 3 server inst3 192.168.114.57:80 backup check inter 2000 fall 3
共分享92篇相关文档