darkyinliang 发表于 2013-4-8 15:21:35

Haproxy+keepalived(双机热备+高可用)

   Haproxy+keepalived(双机热备+高可用)---可用于虚拟云上注释:配置相对比lvs+keepalived 简单!设备资源:Haproxy1:172.16.1.165Haproxy2:172.16.1.196VIP : 172.16.1.223Realserver1:172.16.1.195Realserver2:172.16.1.155Author::darkyinliang@163.com一、首先配置Haproxy1和Haproxy2 (配置一样)1、下载包:wget http://haproxy.1wt.eu/download/1.3/src/haproxy-1.3.20.tar.gztar -zxvf haproxy-1.3.20.tar.gzcd haproxy-1.3.20# 说明:linux下指定内核的版本
make TARGET=linux26 PREFIX=/usr/local/haproxy   make install PREFIX=/usr/local/haproxycd /usr/local/haproxy在此目录下创建haproxy.cfg文件:# vim /usr/local/haproxy/haproxy.cfg globallog 127.0.0.1 local0#log 127.0.0.1 local1 notice#log loghost local0 infomaxconn 4096chroot /usr/local/haproxyuid 99 #所属运行的用户uidgid 99 #所属运行的用户组Daemon#后台运行nbproc 1# 开启haproxy线程数(大点处理能力强点)pidfile /usr/local/haproxy/run/haproxy.pid#debug#quietdefaultslog globallog 127.0.0.1 local3 #日志文件的输出定向mode http #所处理的类别option httplog #日志类别option httpcloseoption dontlognulloption forwardforoption redispatchretries 2 #设置多个haproxy并发进程提高性能maxconn 2000#(balance roundrobin #负载均衡算法stats uri /haproxy-stats #haproxy 监控页面的访问地址stats auth admin:123456# 是登录这个页面的管理员:密码 # 可通过 http://localhost/haproxy-stats 访问contimeout 5000clitimeout 50000srvtimeout 50000listen web 0.0.0.0:80 #运行端口及主机--这个vip就是4个0,因为在keepalived进行配置了!mode httpoption httpchk GET /index.txt #健康检测server s1 172.16.1.195:80 cookie 1 check inter 2000 rise 2 fall 5   # 后端主机IP &端口80可换server s2 172.16.1.155:80 cookie 2 check inter 2000 rise 2 fall 5   # 后端主机IP &端口80可换#—以上配置分别放到两台haproxy的相同目录下即可!———————————1 注释:cookie 1表示serverid为1,2 check inter 1500 是检测心跳频率3 rise 2是2次正确认为服务器可用4 fall 5是5次失败认为服务器不可用5 weight代表权重 二、配置高可用keepalived(两台机器上基本相同只是修改两行:state BACKUP/MASTER和优先级priority 120/150)首先安装keepavlied:tar -zxvf keepalived-1.1.17.tar.gz
安装这个之前,有个细节注意/usr/src/kernels/2.6.18-238.el5-i686/这个下看有东西没!如果没有:执行yum install kernel-devel -y,有则继续!ln -s /usr/src/kernels/2.6.18-238.el5-i686/ /usr/src/linuxcd keepalived-1.1.17./configure --prefix=/usr/local/keepalivedmakemake install安装后,把人家提供好的文件进行对应的复制!ld1#cp /usr/local/keepalived/etc/rc.d/init.d/keepalived/etc/init.d/ld1#cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/ld1#mkdir -pv /etc/keepalivedmkdir: 已创建目录 “/etc/keepalived”ld1#cp /usr/local/keepalived/etc/keepalived/keepalived.conf/etc/keepalived/ld1#ln -s /usr/local/keepalived/sbin/keepalived /sbin/1、下面是Haproxy1:172.16.1.165的配置(keepalived.conf)# cat /etc/keepalived/keepalived.conf! Configuration File for keepalivedvrrp_script chk_http_port {script "/etc/keepalived/check_haproxy.sh"interval 2weight 2global_defs {router_id LVS_DEVEL}vrrp_instance VI_1 {state BACKUPinterface eth0virtual_router_id 80 priority 120advert_int 1authentication {auth_type PASSauth_pass 1111}track_script {chk_http_port}virtual_ipaddress {172.16.1.223 }}}2、下面是Haproxy2:172.16.1.196的配置:# cat /etc/keepalived/keepalived.conf ! Configuration File for keepalivedvrrp_script chk_http_port {script "/etc/keepalived/check_haproxy.sh"interval 2weight 2global_defs {router_id LVS_DEVEL}vrrp_instance VI_1 {state MASTERinterface eth0virtual_router_id 80 priority 150advert_int 1authentication {auth_type PASSauth_pass 1111}track_script {chk_http_port}virtual_ipaddress {172.16.1.223 }}}3、由于上面配置的keepalived.conf 含有一个脚本check_haproxy.sh -----(此脚本目的是启动keepalived的同时就进行对haproxy进行检测---如果发现haproxy没起来就直接拉动haproxy配置文件一起启动!)下面贴出脚本的内容如下创建:# vim /etc/keepalived/check_haproxy.sh#!/bin/bashA=`ps -C haproxy --no-header |wc -l`if [ $A -eq 0 ];then/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfgecho "启动haproxy" &> /dev/nullsleep 3if [ `ps -C haproxy --no-header |wc -l` -eq 0 ];then/etc/init.d/keepalived stopecho "关闭keepalived" &> /dev/nullfiFi注意: 这个脚本放在keepalived中对应的目录/etc/keepalived/下,方可生效!Chmod +x/etc/keepalived/check_haproxy.sh4、启动keepalivedService keepalived start三、加上日志支持(对haproxy的访问日志支持)1、编辑/etc/syslog.conf在最下边增加Vim /etc/syslog.conf   在这文本最后添加以下两行内容:local3.* /var/log/haproxy.loglocal0.* /var/log/haproxy.log   2、编辑 /etc/sysconfig/syslog修改:Vim/etc/sysconfig/syslog修改下面这个内容:SYSLOGD_OPTIONS="-r -m 0"   3、重启日志服务#service syslog restart查看haproxy日志可用: tail -f/var/log/haproxy.log四、realserver两台配置一样:1、如下操作安装普通的apache ----Yum httpd install -yService httpd start以上两个操作在两台realserver均执行!2、修改主页3、在Realserver1:172.16.1.195上Echo 195 > /var/www/html/index.html在创建一个haproxy检测的文本:Echo 95 > /var/www/html/index.txt4、在Realserver2:172.16.1.155上Echo 155 >/var/www/html/index.html在创建一个haproxy检测的文本:Echo 55 > /var/www/html/index.txt五、最后测试访问:http://172.16.1.233/index.html测试效果是:两台realserver的内容交互出现!---六、查看haproxy的状态网页:访问: http://172.16.1.223/haproxy-stats 结果图为如下所示:file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\ksohtml\wps_clip_image-32460.png以上操作便完成了整个架构的搭建!

古城堡 发表于 2013-4-8 15:22:50

禽兽尚且有半点怜悯之心,而我一点也没有,所以我不是禽兽。

chj0771 发表于 2013-5-22 20:10:15

不知该说些什么。。。。。。就是谢谢

arongsoft 发表于 2013-6-6 02:46:03

要是我灌水,就骂我“三个代表”没学好吧。

a6266318 发表于 2013-6-20 08:51:18

俺从不写措字,但俺写通假字!

cheng029 发表于 2013-6-27 18:59:05

读书读到抽筋处,文思方能如尿崩!

82870034 发表于 2013-8-12 21:58:07

看尽天下A片,心中自然无码~
页: [1]
查看完整版本: Haproxy+keepalived(双机热备+高可用)