HAProxy+Keepalived实现负载均衡高可用

一、环境

5台虚拟机,分别是:

1台测试机(192.168.2.83);

2台haproxy/keepalived(192.168.2.230/192.168.2.231);

2台Web Servers(192.168.2.232/192.168.2.233);

注:VIP设置为 192.168.2.228;

二、安装配置Web Server

由于Web Server的安装与配置非常简单,根据自己喜好,安装一个即可;比如:apache、nginx、tomcat等等。在此就不再详述;

三、安装配置HAProxy

yum -y install gcc kernel-devel openssl-devel lrzsz vim wget
wget http://www.haproxy.org/download/1.5/src/haproxy-1.5.12.tar.gz
tar xzvf haproxy-1.5.12.tar.gz
cd haproxy-1.5.12
make TARGET=linux26 PREFIX=/usr/local/haproxy
make install PREFIX=/usr/local/haproxy
mkdir -p /usr/local/haproxy/{conf,run,log}
cp ./examples/haproxy.cfg /usr/local/haproxy/conf/
cd /usr/local/haproxy/conf/

>haproxy.cfg

cat <<eof >> /usr/local/haproxy/conf/haproxy.cfg
global
        log 127.0.0.1   local3
        maxconn 4096
        chroot /usr/local/haproxy
        uid 501
        gid 501
        nbproc 2
        pidfile /usr/local/haproxy/run/haproxy.pid
        daemon

defaults
        log     global
        mode    http
        option  httplog
        option  dontlognull
        retries 2
        option  redispatch
        option  forwardfor
        option  httpclose
        maxconn 2000
        balance roundrobin
        timeout connect 5s
        timeout client 50000ms
        timeout server 50000ms

frontend http
        bind *:80
        mode http
        option  httplog
        default_backend http_pool

backend http_pool
        option  httpchk HEAD /index.html HTTP/1.0

balance source

server html_1 192.168.2.232:80 cookie 1 weight 2 check inter 2000 rise 2 fall 3

server html_2 192.168.2.233:80 cookie 2 weight 2 check inter 2000 rise 2 fall 3

listen stats
        bind *:8888
        mode http
        bind-process 1
        stats uri /haproxy-stats
        stats realm Haproxy \ statistic
        stats auth admin:admin
eof

设置HAProxy 服务器启动脚本(/etc/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.cfg
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`  
        `pkill -9 haproxy`
        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/init.d/haproxy

注:以上的操作,两台都需要操作;到此,我们的HA就安装及配置好了。

四、安装配置Keepalived

wget  http://www.keepalived.org/software/keepalived-1.2.15.tar.gz
tar xzvf keepalived-1.2.15.tar.gz
cd keepalived-1.2.15
./configure --sysconf=/etc/ --with-kernel-dir=/usr/src/kernels/2.6.32-504.23.4.el6.x86_64/

#内核参数,根据不同的操作系统,会不一样,注意更改为您服务器上的内核路径即可;

make
make install
ln -s /usr/local/sbin/keepalived /sbin/
cd /etc/keepalived/
cp keepalived.conf keepalived.conf.bak

编辑keepalive.conf主配置文件,内容大致如下:

! Configuration File for keepalived

global_defs {
   router_id LVS_DEVEL
}

vrrp_script chk_haproxy {
        script "/etc/keepalived/check_haproxy.sh"
        interval 2
        weight 2
        }

vrrp_instance VI_1 {
    state MASTER/BACKUP        #前主后备
    interface eth0
    virtual_router_id 66
    priority 100/80        #前主后备
    advert_int 3
    authentication {
        auth_type PASS
        auth_pass 333333
    }
    virtual_ipaddress {
        192.168.2.228
    }
        track_script {
                chk_haproxy
        }
}

因为主配置文件里有用到一个检测haproxy状态的脚本,所以另外需要创建脚本,内容如下:

# cat check_haproxy.sh

#!/bin/bash
haproxy=`ps -C haproxy --no-header|wc -l`
if [ $haproxy -eq 0 ]; then
/etc/init.d/haproxy start > /dev/null
sleep 5
hastatus=`ps -C haproxy --no-header|wc -l`
if [ $hastatus -eq 0 ]; then
/etc/init.d/keepalived stop > /dev/null
fi
fi

chmod +x /etc/keepalived/check_haproxy.sh

注:同样,以上的所有操作,需要两台服务器上一样操作,注意更改主备及优先级即可;到此,keepalive的相关安装与配置即OK了;

五、测试及校验

  1. 启动keepalived(两台):/etc/init.d/keepalived start
  2. 在主服务器上随意把haproxy或者keepalived服务关闭,观察服务的可用性;
  3. 如果飘到备服务器上了,同样,在备服务器上随意把haproxy或者keepalived服务关闭,再观察;
  4. 最后需要注意的是,如果服务器上有启用安全软件,比如ipatalbes,一定要让服务器间相互访问,不仅仅是ping通;如:iptables -I INPUT -s 192.168.2.0/24 -j ACCEPT
时间: 2024-10-08 02:54:35

HAProxy+Keepalived实现负载均衡高可用的相关文章

LVS+keepalived实现负载均衡&高可用

一.实验环境需求&准备 我们这次实验要完成的一个架构如下图所示,我们通过LVS-DR-MASTER,LVS-DR-BACKUP作为LVS负载均衡调度器,并且两者之间通过keepalived来两者之间的HA.keepalived本身就是为了LVS为开发的,所以说我们通过keepalived来进行LVS的配置就显得十分的方便.而且keepalived是直接操作ip_vs不用通过ipvsadm,所以更加方便. 1)实验架构图&需求表: 角色 IP地址 备注 主LVS调度器(MASTER) 192

heartbeat+Haproxy多VIP负载均衡高可用

环境就不多做介绍了,还是上一篇中用到的四台机器,这里只是之前Heartbeat+Haproxy实现负载均衡高可用的补充罢了,废话少说,进入正题. 本文的目的将实现heartbeat绑定多个VIP,多个VIP又将分别代理多个不同的web服务,这些web服务之间做负载均衡,而VIP是高可用,进而实现haproxy的高可用. 主机名 角色 IP地址 说明 mylinux1.contoso.com Heartbeat+Haproxy eth0:192.168.100.121 eth1:172.16.10

LVS+keepalived+DR 负载均衡高可用

准备两台web服务器,准备好测试页面,以便查看结果.(centos6) 1.下载相关服务,并关闭防火墙和SElinux yum -y install httpd (一般自带都有) yum -y install keepalived (master和slave) yum -y install ipvsadm (master) service iptables stop setenforce 0 2.分别在两台web服务器添加一下测试页面添加不同内容 vim /var/www/html/index.

Nginx+Keepalived实现负载均衡高可用

一.环境 5台虚拟机,分别是: 1台测试机(192.168.2.83); 2台nginx/keepalived(192.168.2.235/192.168.2.236); 2台Web Servers(192.168.2.237/192.168.2.238); 注:VIP设置为 192.168.2.229: 二.安装配置Web Server 由于Web Server的安装与配置非常简单,根据自己喜好,安装一个即可:比如:apache.nginx.tomcat等等.在此就不再详述: 三.安装配置Ng

linux系统下对网站实施负载均衡+高可用集群需要考虑的几点

随着linux系统的成熟和广泛普及,linux运维技术越来越受到企业的关注和追捧.在一些中小企业,尤其是牵涉到电子商务和电子广告类的网站,通常会要求作负载均衡和高可用的Linux集群方案. 那么如何实施linux集群架构,才能既有效保证网站健康运行,又能节省运维成本呢?下面依据近几年的运维经历,简单梳理下自己的一点感悟. (1)机房的选择如果有自己公司的机房那是再好不过的了:如果没有,建议放在BGP机房内托管,如果有选择的话,最好是选择带有硬件防火墙的机房,这样在安全方面也有保障:网站如若是放在

CentOS Linux 负载均衡高可用WEB集群之Nginx+Keepalived配置

Nginx+Keepalived实现负载均衡高可用的WEB服务集群,nginx作为负载均衡器,keepalived作为高可用,当其中的一台负载均衡器(nginx)发生故障时可以迅速切换到备用的负载均衡器(nginx),保持业务的连续性. 1.服务器的环境配置及IP分配 操作系统:CentOS release 6.7 (Final) nginx版本:nginx/1.8.0 keepalived版本:Keepalived v1.2.13 Nginx + keepalived服务器的IP分配表 服务器

HAproxy+Keepalived负载均衡-高可用web站

haproxy+keepalived负载均衡高可用web站   OS IP 子网掩码 路由网关 Centos6.6 HAproxy Keepalived Eth0:192.168.26.210 255.255.252.0 192.168.25.3 VIP:192.168.27.210 Centos6.6 HAporxy Keepalived Eth0:192.168.26.211 255.255.252.0 192.168.25.3 VIP:192.168.27.210 Centos6.6(WE

haproxy+keepalived实现负载均衡及高可用

HAProxy是一个使用C语言编写的自由及开放源代码软件,其提供高性能性.负载均衡,以及基于TCP和HTTP的应用程序代理.相较与 Nginx,HAProxy 更专注与反向代理,因此它可以支持更多的选项,更精细的控制,更多的健康状态检测机制和负载均衡算法. HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理.HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接.并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务

CentOS Linux 负载均衡高可用WEB集群之LVS+Keepalived配置

CentOS Linux 负载均衡高可用WEB集群之LVS+Keepalived配置 LB集群是locd balance集群的简称.翻译成中文是:负载均衡集群的意思:集群是一组相互独立的.通过高速网络互联的计算机相互之间构成一个组合,并以单一的系统的模式加以管理.LVS是Linux Virtual Server的简写,翻译中文是Linux虚拟服务器,是一个虚拟的服务器集群系统. 负载均衡集群:是为了企业提供更为实用,性价比更高的系统机构解决方案.负载均衡集群把用户的请求尽可能的平均分发到集群的各