redhat 6.4(64位)下HAproxy+Keepalived 负载均衡架构搭建 联系客服

发布时间 : 星期二 文章redhat 6.4(64位)下HAproxy+Keepalived 负载均衡架构搭建更新完毕开始阅读7614fbab050876323012120d

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