IT星球论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 242|回复: 0

HAProxy + KeepAlived 实现WEB群集 on CentOS6

[复制链接]

1997

主题

1

好友

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

优秀会员 助人为乐 辛勤工作 技术精英 多才多艺 优秀班竹 灌水天才 星球管理 宣传大使 灌水之王 财富勋章 版主勋章 动漫勋章 勤奋会员 论坛精英 PS高手 心 8 闪游皮肤 双鱼座 8★8➹ 志愿者 乖

发表于 2016-2-2 13:42:29 |显示全部楼层
HAProxy + KeepAlived 实现WEB群集 on Centos6
环境
  1. CentOS6 (linux Kernel 2.6.32-71.el6.i686)   
  2.    
  3. haproxy 1.4.19   
  4.    
  5. keepalived 1.1.17
复制代码
需要的IP配置
  1. Master IP:10.0.0.8   
  2.   
  3. Backup IP:10.0.0.5   
  4.   
  5. RealServer IP:10.0.0.9、10.0.0.10(兼)
复制代码
安装MASTER机器上的keepalived
  1.     [root@RServer2 /]#mkdir /soft  
  2.       
  3.     [root@RServer2 /]#cd /soft  
  4.       
  5.     [root@RServer2 soft]# wget http://www.keepalived.org/software/keepalived-1.1.17.tar.gz  
  6.       
  7.     [root@RServer2 soft]# tar -zxvf keepalived-1.1.17.tar.gz  
  8.       
  9.     [root@RServer2 soft]# cd keepalived-1.1.17  
  10.       
  11.     [root@RServer2 soft]# ./configure  
  12.       
  13.     [root@RServer2 keepalived-1.1.17]# make;make install  
  14.       
  15.     顺利的话就这些步骤了,如果出现错误提示,那么根据具体的错误具体处理,一般可能出现的错误:  
  16.       
  17.     1)、OpenSSL,提示可能如下  
  18.       
  19.     !!! OpenSSL is not properly installed on your system. !!!  
  20.       
  21.     !!! Can not include OpenSSL headers files.  
  22.       
  23.     解决方案:运行yum -y installopenssl-devel  
  24.       
  25.     2)、提示没有gcc编译器  
  26.       
  27.     解决方案:运行yum installncurses-devel gcc gcc-C++ make rpm-build  
  28.       
  29.     [root@RServer2 keepalived-1.1.17]# cp /usr/local/etc/rc.d/init.d/keepalived /etc/init.d/keepalived  
  30.       
  31.     [root@RServer2 keepalived-1.1.17]# cp /usr/local/sbin/keepalived /usr/sbin/  
  32.       
  33.     [root@RServer2 keepalived-1.1.17]# cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/  
  34.       
  35.     [root@RServer2 keepalived-1.1.17]# mkdir -p /etc/keepalived/  
  36.       
  37.     [root@RServer2 keepalived-1.1.17]# cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf  
  38.       
  39.     [root@RServer2 keepalived-1.1.17]# chmod +x /etc/init.d/keepalived  
复制代码
编辑Master机器上的/etc/keepalived/keepalived.conf:
  1.     打开编辑器,比如VI或是gedit /etc/keepalived/keepalived.conf的内容如下,自己修改程序要的内容。  
  2.       
  3.     #Master服务器上的配置 /etc/keepalived/keepalived.conf  
  4.     global_defs {  
  5.        notification_email {  
  6.            leekexi@gmail.com #可以多个地址  
  7.        }  
  8.        notification_email_from leekexi@gmail.com   
  9.        smtp_server smtp.gmail.com   
  10.        smtp_connect_timeout 30  
  11.        router_id LVS_DEVEL  
  12.     }  
  13.       
  14.     vrrp_instance VI_1 {  
  15.         state MASTER #标示状态为MASTER 备份机为BACKUP  
  16.         interface eth0  
  17.         virtual_router_id 51  
  18.         priority 100   #MASTER权重要高于BACKUP 比如BACKUP为99  
  19.         advert_int 1  
  20.       
  21.         authentication {  
  22.             auth_type PASS #主从服务器验证方式  
  23.             auth_pass 1111  
  24.         }  
  25.         virtual_ipaddress {  
  26.             10.0.0.8 #可以多个虚拟IP,换行即可  
  27.         }  
  28.     }  
  29.       
  30.       
  31.     #虚拟服务器 80端口的配置  
  32.     virtual_server 10.0.0.8 80 {  
  33.         delay_loop 6  
  34.         lb_algo rr  
  35.         protocol TCP  
  36.       
  37.         real_server 10.0.0.9 80 {  
  38.             weight  5  
  39.             TCP_CHECK {  
  40.                 connect_timeout 10  
  41.                 nb_get_retry 3  
  42.                 delay_before_retry 3  
  43.                 connect_port 80  
  44.             }  
  45.         }  
  46.       
  47.         real_server 10.0.0.10 80 {  
  48.             weight  5  
  49.             TCP_CHECK {  
  50.                 connect_timeout 10  
  51.                 nb_get_retry 3  
  52.                 delay_before_retry 3  
  53.                 connect_port 80  
  54.             }  
  55.         }  
  56.       
  57.     }  
复制代码
编辑Master机器上安装HAProxy:
  1. 下载地址:http://haproxy.1wt.eu/download/1.4/src/   
  2. 选择合适的版本,一般选择比较新的版本会理想一些。   
  3. 我们假设下载到/soft目录下   
  4. #tar zcvf haproxy-1.4.19.tar.gz   
  5. # cd haproxy-1.4.19   
  6. # make TARGET=linux26 PREFIX=/usr/local/haproxy   
  7. # make install PREFIX=/usr/local/haproxy   
  8.   
  9. 在安装目录/usr/local/haproxy 建立conf文件夹 之后在该文件夹建立 haproxy.cfg 配置文件 用vi或是gedit打开haproxy.cfg配置文件  
  10. 配置文件的内容自行定义  
  11.   
  12. global  
  13.         log 127.0.0.1   local0  
  14.         maxconn 4096  
  15.         chroot /usr/local/haproxy  
  16.         uid 501  
  17.         gid 501  
  18.         daemon  
  19.         nbproc 1  
  20.         pidfile /usr/local/haproxy/logs/haproxy.pid  
  21.         debug  
  22.   
  23. defaults  
  24.         log     127.0.0.1       local3  
  25.         mode    http  
  26.         option httplog  
  27.         option httpclose  
  28.         option dontlognull  
  29.         option forwardfor  
  30.         option redispatch  
  31.         retries 2  
  32.         maxconn 2000  
  33.         balance roundrobin  
  34.         stats   uri     /haproxy-stats  
  35.         contimeout      5000  
  36.         clitimeout      50000  
  37.         srvtimeout      50000  
  38.   
  39. listen web_proxy 10.0.0.8:80  
  40.         server web1_10.0.0.6  10.0.0.9:80 cookie app1inst1 check inter 2000 rise 2 fall 5  
  41.         server web2_10.0.0.5  10.0.0.10:80 cookie app1inst2 check inter 2000 rise 2 fall 5  
  42.          
  43. cookie 1表示serverid为1,  
  44. check inter 1500 是检测心跳频率  
  45. rise 2是2次正确认为服务器可用  
  46. fall 3是3次失败认为服务器不可用  
  47. weight代表权重  
  48.   
  49. 加上日志支持  
  50. 编辑/etc/syslog.conf在最下边增加  
  51. local3.* /var/log/haproxy.log  
  52. local0.* /var/log/haproxy.log  
  53.   
  54. 编辑 /etc/sysconfig/syslog修改:   
  55. SYSLOGD_OPTIONS="-r -m 0"   
  56.   
  57. 重启日志服务  
  58. #service syslog restart
复制代码
  1. BACKUP的安装和Master的安装基本一致,只是一些参数略有变化。   
  2.         
  3.     变化的参数如下:   
  4.         
  5.     1、keepalived.conf文件中   
  6.         
  7.     原:state MASTER #标示状态为MASTER 备份机为BACKUP   
  8.         
  9.     state BACKUP  #标示状态改为BACKUP   
  10.         
  11.          
  12.         
  13.     原:priority 100   #MASTER权重要高于BACKUP 比如BACKUP为99   
  14.         
  15.     priority 99   #MASTER权重要高于BACKUP,MASTER为100,那么BACKUP略小于,比如99  
复制代码
  1. 为了方便系统在开机时加载,还可以创建启动脚本:  
  2. # vim /etc/rc.d/init.d/haproxy  内容如下:  
  3.   
  4. #! /bin/sh  
  5. set -e  
  6.    
  7. PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/haproxy/sbin  
  8. PROGDIR=/usr/local/haproxy  
  9. PROGNAME=haproxy  
  10. DAEMON=$PROGDIR/sbin/$PROGNAME  
  11. CONFIG=$PROGDIR/conf/$PROGNAME.conf  
  12. PIDFILE=$PROGDIR/run/$PROGNAME.pid  
  13. DESC="HAProxy daemon"  
  14. SCRIPTNAME=/etc/init.d/$PROGNAME  
  15.    
  16. # Gracefully exit if the package has been removed.  
  17. test -x $DAEMON || exit 0  
  18.    
  19. start()  
  20. {  
  21.         echo -n "Starting $DESC: $PROGNAME"  
  22.         $DAEMON -f $CONFIG  
  23.         echo "."  
  24. }  
  25.    
  26. stop()  
  27. {  
  28.         echo -n "Stopping $DESC: $PROGNAME"  
  29.         haproxy_pid=cat $PIDFILE  
  30.         kill $haproxy_pid  
  31.         echo "."  
  32. }  
  33.    
  34. restart()  
  35. {  
  36.         echo -n "Restarting $DESC: $PROGNAME"  
  37.         $DAEMON -f $CONFIG -p $PIDFILE -sf $(cat $PIDFILE)  
  38.         echo "."  
  39. }  
  40.    
  41. case "$1" in  
  42.   start)  
  43.         start  
  44.         ;;  
  45.   stop)  
  46.         stop  
  47.         ;;  
  48.   restart)  
  49.         restart  
  50.         ;;  
  51.   *)  
  52.         echo "Usage: $SCRIPTNAME {start|stop|restart}" >&2  
  53.         exit 1  
  54.         ;;  
  55. esac   
  56.   
  57. exit 0  
  58.   
  59.    
  60.   
  61. 保存后赐予可执行权限  
  62. # chmod +x /etc/rc.d/init.d/haproxy  
  63.   
  64. 就可以使用 service haproxy start|stop|restart 来控制服务的启动停止跟重启。  
  65. 并通过以下命令加载到开机服务启动列表  
  66. # chkconfig --add haproxy</pre>  
  67. <p></p>  
  68. <p>
  69.   
  70. <span style="font-size:18px"><span style="background-color:rgb(192,192,192)"><span style="font-size:18px"><span style="background-color:rgb(192,192,192)"><span style="font-size:18px"><span style="background-color:rgb(192,192,192)"><span style="font-size:18px; color:#FFCC33; background-color:rgb(0,153,0)">8、</span><span style="background-color:rgb(0,153,0)"><span style="color:#FFFF00">维护HAProxy和Keepalived</span>:</span></span></span></span></span></span></span></p>  
  71. <p></p>  
  72. <pre name="code" class="html">1)、keepAlived维护   
  73.    
  74. 启动:/etc/init.d/keepalived start   
  75.    
  76. 停止:/etc/init.d/keepalived stop   
  77.    
  78. 重启:/etc/init.d/keepalived restart   
  79.   
  80. 2)、haproxy维护  
  81. <pre name="code" class="html">启动:service haproxy start   
  82.    
  83. 停止:service haproxy stop   
  84.    
  85. 重启:service haproxy restart   
复制代码
HAProxy + KeepAlived 实现WEB群集 on CentOS6

该会员没有填写今日想说内容.
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

回顶部