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