RHEL6 搭建LVS/NAT 负载均衡集群 案例

简介:

实验拓扑图

NAT.jpg



操作流程

Director Server :     192.168.4.50 pc50

安装并启用ipvsadm

创建虚拟服务器

向虚拟服务器上加入节点


Real Server :     192.168.4.51 pc51     192.168.4.52 pc52

配置WEB 服务器


Clinet :     192.168.2.253 pc253

连接虚拟服务器测试


具体步骤

环境准备

    配置yum源

    # service iptables stop            //关闭防火墙

    # chkconfig iptables off            //关闭开机自启

    # setenforce 0                            //设置SELinux 为宽松模式

    

网站服务器     pc51 /  pc52 

    # yum -y install httpd

    [root@pc51 ~]# echo '192.168.4.51' > /var/www/html/test.html

    [root@pc52 ~]# echo "192.168.4.52" > /var/www/html/test.html

    # service httpd start

    # chkconfig httpd on

    # yum -y install elinks

    [root@pc51 ~]# elinks --dump http://localhost/test.html

       192.168.4.51

    [root@pc52 ~]# elinks --dump http://localhost/test.html

       192.168.4.52

    

配置分发器 pc50

        # mount /dev/cdrom /mnt/

        //安装 ipvsadm   rpm 包在光盘挂载文件下的LoadBalancer目录下

        #cd /mnt/LoadBalancer/

        #yum -y install ipvsadm-1.26-4.el6.x86_64.rpm 

        //开启内核的路由转发功能

        # sed -i '7s/0/1/' /etc/sysctl.conf

        # sed -n '7p' /etc/sysctl.conf 

        net.ipv4.ip_forward = 1


网站服务器 pc51 / pc52 

        指定网关地址 192.168.4.50

        # route -n//查看路由

        # route add default gw 192.168.4.50//临时配置网关 网卡重启后生效

        //永久配置网关

        # vim /etc/sysconfig/network-scripts/ifcfg-eth0

        # sed -n '7p' /etc/sysconfig/network-scripts/ifcfg-eth0

        GATEWAY=192.168.4.50

        # ifdown eth0 ; ifup eth0      //重新加载网卡


客户端 192.168.2.253 配置

        指定网关地址 192.168.2.50 :

        # vim /etc/sysconfig/network-scripts/ifcfg-eth1

        # sed -n '7p' /etc/sysconfig/network-scripts/ifcfg-eth1

        GATEWAY=192.168.2.50

        # ifdown eth1 ; ifup eth1

        # ping -c 2 192.168.4.51

        PING 192.168.4.51 (192.168.4.51) 56(84) bytes of data.

        64 bytes from 192.168.4.51: icmp_seq=1 ttl=63 time=0.322 ms

        64 bytes from 192.168.4.51: icmp_seq=2 ttl=63 time=0.503 ms

        

        --- 192.168.4.51 ping statistics ---

        2 packets transmitted, 2 received, 0% packet loss, time 1000ms

        rtt min/avg/max/mdev = 0.322/0.412/0.503/0.092 ms

        # yum -y install elinks

        


配置分发器 pc50 :

        # yum -y install ipvsadm-1.26-4.el6.x86_64.rpm

        # rpm -q ipvsadm

        ipvsadm-1.26-4.el6.x86_64

        

添加虚拟服务

        # ipvsadm -L  //查看 IPVS

        IP Virtual Server version 1.2.1 (size=4096)

        Prot LocalAddress:Port Scheduler Flags

          -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

        # ipvsadm -A -t 192.168.2.50:80 -s rr//添加虚拟服务 调度算法为Round Robin

        # ipvsadm -L

        IP Virtual Server version 1.2.1 (size=4096)

        Prot LocalAddress:Port Scheduler Flags

          -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

        TCP  192.168.2.50:http rr

        # ipvsadm -Ln   //- n  数字显示

        IP Virtual Server version 1.2.1 (size=4096)

        Prot LocalAddress:Port Scheduler Flags

          -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

        TCP  192.168.2.50:80 rr

                //向虚拟服务器中加入节点

        # ipvsadm -a -t 192.168.2.50:80 -r 192.168.4.51:80 -m

        # ipvsadm -a -t 192.168.2.50:80 -r 192.168.4.52:80 -m

        # ipvsadm -Ln

        IP Virtual Server version 1.2.1 (size=4096)

        Prot LocalAddress:Port Scheduler Flags

          -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

        TCP  192.168.2.50:80 rr

          -> 192.168.4.51:80              Masq    1      0          0         

          -> 192.168.4.52:80              Masq    1      0          0   

        # /etc/init.d/ipvsadm save//使配置永久生效

        ipvsadm: Saving IPVS table to /etc/sysconfig/ipvsadm:      [确定]

        # cat /etc/sysconfig/ipvsadm

        -A -t 192.168.2.50:80 -s rr

        -a -t 192.168.2.50:80 -r 192.168.4.51:80 -m -w 1

        -a -t 192.168.2.50:80 -r 192.168.4.52:80 -m -w 1

        

客户端测试

        # elinks --dump http://192.168.2.50/test.html

           192.168.4.51

        # elinks --dump http://192.168.2.50/test.html

           192.168.4.52

        //客户端 轮询到不同的后端真实服务器        

        

        [root@pc50 ~]# ipvsadm -Ln --stats

        IP Virtual Server version 1.2.1 (size=4096)

        Prot LocalAddress:Port               Conns   InPkts  OutPkts  InBytes OutBytes

          -> RemoteAddress:Port

        TCP  192.168.2.50:80                 2       10       10      846     1098

          -> 192.168.4.51:80                     1        5        5        423      549

          -> 192.168.4.52:80                     1        5        5        423      549


        模拟pc51 web服务故障:

        [root@pc51 ~]# service httpd stop

        [root@pc50 ~]# ipvsadm -Z

        

         //客户端测试

        # elinks --dump http://192.168.2.50/test.html

           192.168.4.52

        # elinks --dump http://192.168.2.50/test.html

           192.168.4.52

           

        [root@pc50 ~]# ipvsadm -Ln --stats

        IP Virtual Server version 1.2.1 (size=4096)

        Prot LocalAddress:Port               Conns   InPkts  OutPkts  InBytes OutBytes

          -> RemoteAddress:Port

        TCP  192.168.2.50:80                 3       11       11      906     1138

          -> 192.168.4.51:80                     1        1        1         60       40

          -> 192.168.4.52:80                     2       10       10      846     1098

        

        会发现 LVS/NAT 单点故障时 并不能健康性检查

        可以 编写一个脚本 监测两台Real Server 的服务 是否正常 如果监测到故障  将对应的服务在调度服务器 停掉

        使用周期性计划任务 定时运行监测脚本 到达 健康检查的目的

 










本文转自 Xuenqlve 51CTO博客,原文链接:http://blog.51cto.com/13558754/2060385,如需转载请自行联系原作者
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
目录
相关文章
|
10月前
|
负载均衡 算法 关系型数据库
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
本文聚焦 MySQL 集群架构中的负载均衡算法,阐述其重要性。详细介绍轮询、加权轮询、最少连接、加权最少连接、随机、源地址哈希等常用算法,分析各自优缺点及适用场景。并提供 Java 语言代码实现示例,助力直观理解。文章结构清晰,语言通俗易懂,对理解和应用负载均衡算法具有实用价值和参考价值。
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
|
10月前
|
负载均衡 前端开发 JavaScript
LVS-DR模式、keepalived、Nginx与Tomcat合作,打造动静分离,高效负载均衡与高可用性
为了采用这样的架构,你需要对LVS-DR、Keepalived、Nginx与Tomcat有一定的理解和掌握,同时也需要投入一些时间去研究和配置,但是一旦你把它运行起来,你将会发现,这一切都是值得的。
405 11
|
11月前
|
负载均衡 算法 关系型数据库
大数据新视界--大数据大厂之MySQL数据库课程设计:MySQL集群架构负载均衡故障排除与解决方案
本文深入探讨 MySQL 集群架构负载均衡的常见故障及排除方法。涵盖请求分配不均、节点无法响应、负载均衡器故障等现象,介绍多种负载均衡算法及故障排除步骤,包括检查负载均衡器状态、调整算法、诊断修复节点故障等。还阐述了预防措施与确保系统稳定性的方法,如定期监控维护、备份恢复策略、团队协作与知识管理等。为确保 MySQL 数据库系统高可用性提供全面指导。
|
负载均衡 算法 应用服务中间件
负载均衡技术在Web服务器集群中的应用
【8月更文第28天】随着互联网的发展和用户对Web服务需求的增长,单台服务器很难满足大规模访问的需求。为了提高系统的稳定性和扩展性,通常会采用Web服务器集群的方式。在这种架构中,负载均衡器扮演着至关重要的角色,它能够合理地分配客户端请求到不同的后端服务器上,从而实现资源的最优利用。
496 2
|
负载均衡 算法 关系型数据库
MySQL集群如何实现负载均衡?
【8月更文挑战第16天】MySQL集群如何实现负载均衡?
987 6
|
负载均衡 网络协议
使用LVS搭建集群实现负载均衡(二)安装使用
【8月更文挑战第8天】使用LVS搭建集群实现负载均衡(二)安装使用
275 5
|
存储 负载均衡 算法
使用LVS搭建集群实现负载均衡(一)
【8月更文挑战第8天】使用LVS搭建集群实现负载均衡
724 5
|
消息中间件 负载均衡 算法
【RocketMQ系列十二】RocketMQ集群核心概念之主从复制&生产者负载均衡策略&消费者负载均衡策略
【RocketMQ系列十二】RocketMQ集群核心概念之主从复制&生产者负载均衡策略&消费者负载均衡策略
734 2
|
缓存 负载均衡 NoSQL
Redis系列学习文章分享---第十四篇(Redis多级缓存--封装Http请求+向tomcat发送http请求+根据商品id对tomcat集群负载均衡)
Redis系列学习文章分享---第十四篇(Redis多级缓存--封装Http请求+向tomcat发送http请求+根据商品id对tomcat集群负载均衡)
225 1
|
负载均衡 监控 算法
在Linux中,如何配置和管理LVS集群?
在Linux中,如何配置和管理LVS集群?