keepalived+haproxy实现web服务的高可用和负载均衡

本文涉及的产品
网络型负载均衡 NLB,每月750个小时 15LCU
传统型负载均衡 CLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
简介:

简介:

keepalived是一个类似于layer3, 4 & 5交换机制的软件,也就是我们平时说的第3层、第4层和第5层交换.Keepalived的作用是检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的web服务器从系统中剔除,web服务器工作正常后Keepalived自动将web服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的web服务器.
 
Haproxy 反向代理服务器,支持双机热备支持虚拟主机,但其配置简单,拥有非常不错的服务器健康检查功能,当其代理的后端服务器出现故障, HAProxy会自动将该服务器摘除,故障恢复后再自动将该服务器加入.新的1.3引入了frontend,backend,frontend根据任意HTTP请求头内容做规则匹配,然后把请求定向到相关的backend.
 
实验环境以及服务器信息:
 
OS:   RedHat  AS 5.1
 
软件列表:
      keepalived-1.2.2.tar.gz
      haproxy-1.4.13.tar.gz
 
服务器信息:
Master server  10.10.0.99   (调度主服务器)
Slave server    10.10.0.98   (从调度服务器)
       VIP: 10.10.0.97                   (调度服务器的虚拟IP)
 
Real server:
10.10.0.96
10.10.0.95

安装keepalived

#  tar zxvf  keepalived-1.2.2.tar.gz
#  cd keepalived-1.2.2
#  ./configure –-prefix=/usr/local/keepalived
#  make&&make install
#  cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
#  cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
#  mkdir /etc/keepalived
#  cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
#  cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
#  chkconfig –add keepalived
#  chkconfig  keepalived on
#  vi /etc/keepalived/keepalived.conf
 
global_defs {
notification_email {
xxxxxx@139.com
}
notification_email_from xxxxxx@139.com
smtp_server mail.139.com
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state MASTER
interface eth1
virtual_router_id 51
priority 100
advert_int
authentication {
auth_type PASS
auth_pass 1111
    }
virtual_ipaddress {
10.10.0.97
}
}
virtual_server 10.10.0.97 80 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
    persistence_timeout 50
    protocol TCP
    real_server 10.10.0.95 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 10
            nb_get_retry 3
            delay_before_retry 3
        }
    }

    real_server 10.10.0.96 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 10
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}
关于keepalived配置文件的选项解释可以去网上搜下 由于选项参数居多这里就不说明了
#  service keepalived start
 
 
 

安装haproxy

#   tar zxvf  haproxy-1.4.13.tar.gz
#   mv  haproxy-1.4.13 haproxy
#   cd haproxy
#   make TARGET=linux26  
#   vi /usr/local/haproxy/conf/haproxy.conf
#   mkdir –p /var/chroot/haproxy
 
global
        chroot /var/chroot/haproxy
        daemon
        gid     0
        log 127.0.0.1 local3
        nbproc  2
        pidfile /var/run/haproxy-private.pid

        ulimit   -n        65535
        user    root
        maxconn         32000
        spread-checks           4
        tune.maxaccept          8
        tune.maxpollevents      100
defaults sxit
        log     global
        mode    http
        option  httplog
        option  dontlognull
        log 127.0.0.1 local3
        retries 3
        option redispatch
        maxconn     32000
        contimeout      5000
        clitimeout        50000
        srvtimeout       50000
listen  sxit 0.0.0.0:80
        appsession JSESSIONID len 52 timeout 3h
        cookie SRV insert indirect nocache
        mode http
        stats enable
        stats hide-version
        stats uri  /haproxy-stats
        stats realm Haproxy\ statistics
        stats auth sxit:sxit
        stats refresh 3s
        monitor-uri /haproxy_test
        balance roundrobin
        option httpclose
        option forwardfor
        option httpchk HEAD /index.html HTTP/1.0
        server s1 10.10.0.95:80 check inter 2000  
weight 3

        server s3 10.10.0.96:80 check inter 2000  
weight 3
        
# /usr/local/haproxy/sbin/haproxy –f  /usr/local/haproxy/config/haproxy.config
 
如果启动没有报什么错误的话,就在浏览器上输入如下地址
http://10.10.0.97/haproxy-stats   (查看服务器状态信息的页面,登录的时候输入上面设置的账号和密码sxit),页面状态如下:
 

测试负载均衡效果以及高可用性

负载均衡测试:

   启动真实服务器的web服务,2个真实服务器上创建2个首页文件,内容分别为test1test2,如果在浏览器上访问web服务每次刷新既显示test1又显示tetst2就说明负载均衡已经生效了.

高可用性测试:

拔掉主调度服务器的网线或者关闭主调度服务器,看下VIP是否顺利的切换到从调度器,假如切换正常,那就说明keepalived已经成功生效了.

本文转自wiliiwin 51CTO博客,原文链接:http://blog.51cto.com/wiliiwin/648188

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
10月前
|
弹性计算 监控 负载均衡
|
1月前
|
负载均衡 NoSQL Redis
不增加 GPU,首 Token 延迟下降50%|LLM 服务负载均衡的新实践
针对LLM服务的特点,Higress AI网关以插件形式提供了面向LLM服务的负载均衡算法,包括全局最小请求数负载均衡、前缀匹配负载均衡以及GPU感知负载均衡,能够在不增加硬件成本的前提下,提升系统的吞吐能力、降低响应延迟,并实现更公平、高效的任务调度。
|
4月前
|
负载均衡 前端开发 JavaScript
LVS-DR模式、keepalived、Nginx与Tomcat合作,打造动静分离,高效负载均衡与高可用性
为了采用这样的架构,你需要对LVS-DR、Keepalived、Nginx与Tomcat有一定的理解和掌握,同时也需要投入一些时间去研究和配置,但是一旦你把它运行起来,你将会发现,这一切都是值得的。
164 11
|
10月前
|
运维 负载均衡 算法
|
9月前
|
负载均衡 算法 Linux
LVS+Keepalived:实现高效软负载均衡的利器
本文介绍了如何使用LVS(Linux Virtual Server)和Keepalived搭建高可用负载均衡集群。LVS通过不同调度算法将请求转发给后端服务器,而Keepalived基于VRRP协议实现服务高可用,避免IP单点故障。具体步骤包括环境准备、安装配置ipvsadm和Keepalived、启动服务及测试。文中还详细解释了配置文件中的关键参数,并提供了故障转移测试方法。最后,文章简要对比了软件、硬件和云负载均衡方案的特点,帮助读者选择合适的负载均衡策略。
1362 4
|
12月前
|
运维 负载均衡 网络协议
LVS+Keepalived 负载均衡
LVS+Keepalived 负载均衡
242 8
LVS+Keepalived 负载均衡
|
监控 Apache
HAProxy的高级配置选项-Web服务器状态监测
这篇文章介绍了HAProxy的高级配置选项,特别是如何进行Web服务器状态监测,包括基于四层传输端口监测、基于指定URI监测和基于指定URI的request请求头部内容监测三种方式,并通过实战案例展示了配置过程和效果。
256 8
HAProxy的高级配置选项-Web服务器状态监测
|
11月前
|
负载均衡 Kubernetes 区块链
随机密码生成器+阿里k8s负载均衡型服务加证书方法+移动终端设计+ico生成器等
随机密码生成器+阿里k8s负载均衡型服务加证书方法+移动终端设计+ico生成器等
172 1
|
12月前
|
域名解析 运维 负载均衡
LVS+Keepalived 负载均衡(二)28-1
【8月更文挑战第28天】LVS+Keepalived 负载均衡 配置 LVS VIP
179 5
|
运维 Serverless API
Serverless痛点解决问题之编写并部署一个弹性高可用的 Web API如何解决
Serverless痛点解决问题之编写并部署一个弹性高可用的 Web API如何解决
131 0