LVS DR模式负载均衡配置详解(配置篇一)

简介:

一安装LVS准备:

1、准备4台Centos 6.2 x86_64

注:本实验关闭 SELinux和IPtables防火墙。

管理IP地址 角色 备注
192.168.1.101 LVS主调度器(Master Director) 对外提供服务的VIP为192.168.1.180
192.168.1.114 LVS从调度器(Backup Director) 平时可以作为RS(真实服务器使用)
192.168.1.104 RS1(真实服务器)  
192.168.1.103 RS2(真实服务器)  

2、配置好简单的HTTP服务

这里以apache服务为例,通过yum -y install httpd 的方式安装好httpd服务。

分别在192.168.1.103和192.168.1.104上做如下操作:


 
 
  1. [root@centos ~]# yum -y install httpd 
  2. echo 103 >/var/www/html/index.html   #(104上的要把 103字段改成 104)
  3. [root@centos ~]# service httpd start #启动http服务
  4. [root@centos ~]# ps -ef | grep httpd #检查进程如有类似的输出表示启动成功。
    root 1535 1 0 23:27 ? 00:00:00 /usr/sbin/httpd
    apache 1537 1535 0 23:27 ? 00:00:00 /usr/sbin/httpd
    apache 1538 1535 0 23:27 ? 00:00:00 /usr/sbin/httpd
    apache 1539 1535 0 23:27 ? 00:00:00 /usr/sbin/httpd
  5. [root@centos ~]# setenforce 0 #关闭SELinux
  6. [root@centos ~]# /etc/rc.d/init.d/iptables stop #关闭防火墙

3、测试http服务配置:

注:用IP地址最后一段数字代表RS自身的内容,容易让大家看到测试的结果,实际业务中,RS的业务内容应该是完全相同的。

4、开始安装LVS

下载相关软件包:


 
 
  1. [root@centos1 ~]# mkdir download 
  2. [root@centos1 ~]# cd download/ 
  3. [root@centos1 download]# wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz  
5、安装命令

注:以下安装需要在192.168.1.101和192.168.1.104上面操作:

 
 
  1. [root@centos1 download]# uname -r   #查看linux内核版本   
  2. 2.6.32-220.el6.x86_64   
  3. [root@centos1 download]# ln -s /usr/src/kernels/2.6.32-220.el6.x86_64/ /usr/src/linux #不做此步骤,安装会报错  
  4. 注:此ln命令的路径要和uname -r输出内核版本一致,如果没有 /usr/src/kernels/2.6.32-220.el6.x86_64/ 需要安装 kernel-devel软件包。  
  5. [root@centos1 download]# tar zxvf ipvsadm-1.24.tar.gz   
  6. [root@centos1 download]# cd ipvsadm-1.24   
  7. [root@centos1 ipvsadm-1.24]# make   
  8. [root@centos1 ipvsadm-1.24]# make install   
  9. [root@centos1 ipvsadm-1.24]# ipvsadm  #执行ipvsadm命令,把LVS添加到linux内核中   
  10. IP Virtual Server version 1.2.1 (size=4096)   
  11. Prot LocalAddress:Port Scheduler Flags   
  12.   -> RemoteAddress:Port       Forward Weight ActiveConn InActConn   
  13. [root@centos1 ipvsadm-1.24]# lsmod | grep ip_vs  #查看LVS是否已经添加到linux内核了,如果有如下输出表示已经成功。   
  14. ip_vs                 108133  0    
  15. ipv6                  322029  154 ip_vs,ip6t_REJECT,nf_conntrack_ipv6,nf_defrag_ipv6   

6配置LVS 服务端

在192.168.1.101和192.168.1.114上分别配置LVS DR模式

1)、配置LVS,建立一个脚本配置LVS

注:192.168.1.101和192.168.1.114上配置都是一样的


 
 
  1. [root@centos1 bin]# vim lvs_dr.sh 
  2. #!/bin/bash  
  3. . /etc/init.d/functions  
  4. vim lvs_dr.sh  
  5. #!/bin/bash  
  6. GW=192.168.1.1  
  7. # website director vip.  
  8. SNS_VIP=192.168.1.181  
  9. SNS_RIP1=192.168.1.103  
  10. SNS_RIP2=192.168.1.104  
  11.       
  12. logger $0 called with $1  
  13. case "$1" in  
  14. start)  
  15.   # set squid vip  
  16.   /sbin/ipvsadm --set 30 5 60  
  17.   /sbin/ifconfig eth0:0 $SNS_VIP broadcast $SNS_VIP netmask 255.255.255.255 up  
  18.   /sbin/route add -host $SNS_VIP dev eth0:0  
  19.   /sbin/ipvsadm -A -t $SNS_VIP:80 -s wrr -p 3  
  20.   /sbin/ipvsadm -a -t $SNS_VIP:80 -r $SNS_RIP1:80 -g -w 1  
  21.   /sbin/ipvsadm -a -t $SNS_VIP:80 -r $SNS_RIP2:80 -g -w 1  
  22.   touch /var/lock/subsys/ipvsadm >/dev/null 2>&1  
  23.   ;;  
  24. stop)  
  25.   /sbin/ipvsadm -C  
  26.   /sbin/ipvsadm -Z  
  27.   ifconfig eth0:0 down  
  28.   ifconfig eth0:1 down  
  29.   route del $SNS_VIP  
  30.   route del $SS_VIP  
  31.   rm -rf /var/lock/subsys/ipvsadm >/dev/null 2>&1  
  32.   echo "ipvsadm stoped"  
  33.   ;;  
  34. status)  
  35.   if [ ! -e /var/lock/subsys/ipvsadm ];then  
  36.   echo "ipvsadm stoped"  
  37.   exit 1  
  38.   else  
  39.   echo "ipvsadm OK"  
  40.   fi  
  41.   ;;  
  42. *)  
  43.  echo "Usage: $0 {start|stop|status}"  
  44.  exit 1  
  45. esac  
  46.  exit 0  
  47. [root@centos1 bin]# chmod +x lvs_dr.sh 
  48. [root@centos1 bin]# cp lvs_dr.sh /etc/rc.d/init.d/   #方便启动 
  49. [root@centos1 bin]# service lvs_dr.sh start   #启动lvs服务 

用ipvsadm -Ln 命令查看是否有如下输出,如有证明LVS配置成功


 
 
  1. [root@centos1 bin]# ipvsadm 
  2. IP Virtual Server version 1.2.1 (size=4096) 
  3. Prot LocalAddress:Port Scheduler Flags 
  4.   -> RemoteAddress:Port           Forward Weight ActiveConn InActConn 
  5. TCP  192.168.1.181:http wrr persistent 3 
  6.   -> 192.168.1.104:http           Route   1      0          0          
  7.   -> 192.168.1.103:http           Route   1      0          0          

7、配置LVS RS服务器


 
 
  1. [root@centos bin]# vim lvs_dr.sh 
  2. #!/bin/bash 
  3. . /etc/init.d/functions 
  4. SNS_VIP=192.168.1.181 
  5.  
  6. case "$1" in 
  7. start) 
  8.       ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP 
  9.       /sbin/route add -host $SNS_VIP dev lo:0 
  10.       echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore 
  11.       echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce 
  12.       echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore 
  13.       echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce 
  14.       sysctl -p >/dev/null 2>&1 
  15.       echo "RealServer Start OK" 
  16.       ;; 
  17. stop) 
  18.      ifconfig lo:0 down 
  19.       route del $SNS_VIP >/dev/null 2>&1 
  20.       echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore 
  21.       echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce 
  22.       echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore 
  23.       echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce 
  24.       echo "RealServer Stoped" 
  25.       ;; 
  26. *) 
  27.       echo "Usage: $0 {start|stop}" 
  28.       exit 1 
  29. esac 
  30. exit 0 
  31. [root@centos bin]# cp lvs_dr.sh /etc/rc.d/init.d/ 
  32. [root@centos bin]# service lvs_dr.sh start  #启动lvs RS服务器 
  33. RealServer Start OK 

8、验证LVS DR模式是否配置成功

在浏览器中输入 LVS  http://192.168.1.181

然后打开另一个浏览器再次输入 http://192.168.1.181 看看内容是否一样

用两个浏览器访问的内容不同,证明LVS DR模式配置成功

到此LVS DR模式已经配置完成,下面配置LVS DR + Keepalived 高可用负载均衡。



本文转自1594cqb 51CTO博客,原文链接:http://blog.51cto.com/wolfchen/1122841,如需转载请自行联系原作者

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
负载均衡 前端开发 JavaScript
LVS-DR模式、keepalived、Nginx与Tomcat合作,打造动静分离,高效负载均衡与高可用性
为了采用这样的架构,你需要对LVS-DR、Keepalived、Nginx与Tomcat有一定的理解和掌握,同时也需要投入一些时间去研究和配置,但是一旦你把它运行起来,你将会发现,这一切都是值得的。
486 11
|
负载均衡 IDE Java
SpringBoot整合XXL-JOB【04】- 以GLUE模式运行与执行器负载均衡策略
在本节中,我们将介绍XXL-JOB的GLUE模式和集群模式下的路由策略。GLUE模式允许直接在线上改造方法为定时任务,无需重新部署。通过一个测试方法,展示了如何在调度中心配置并使用GLUE模式执行定时任务。接着,我们探讨了多实例环境下的负载均衡策略,确保任务不会重复执行,并可通过修改路由策略(如轮训)实现任务在多个实例间的均衡分配。最后,总结了GLUE模式和负载均衡策略的应用,帮助读者更深入理解XXL-JOB的使用。
1128 9
SpringBoot整合XXL-JOB【04】-  以GLUE模式运行与执行器负载均衡策略
|
负载均衡 网络协议 Linux
在Linux中, LVS三种模式的工作过程是什么?
在Linux中, LVS三种模式的工作过程是什么?
|
负载均衡 算法 Linux
在Linux中,LVS-NAT模式的原理是什么?
在Linux中,LVS-NAT模式的原理是什么?
|
负载均衡 监控 网络协议
在Linux中,LVS-DR模式原理是什么?
在Linux中,LVS-DR模式原理是什么?
|
负载均衡 前端开发 应用服务中间件
Tomcat的负载均衡和动静分离(与nginx联动)
总的来说,负载均衡和动静分离是提高Web应用性能的两个重要手段。通过合理的配置和使用,我们可以让Web应用更好地服务于用户。
406 21
|
缓存 负载均衡 算法
解读 Nginx:构建高效反向代理和负载均衡的秘密
解读 Nginx:构建高效反向代理和负载均衡的秘密
422 2
|
负载均衡 前端开发 应用服务中间件
负载均衡指南:Nginx与HAProxy的配置与优化
负载均衡指南:Nginx与HAProxy的配置与优化
992 3
|
负载均衡 应用服务中间件 nginx
解决nginx配置负载均衡时invalid host in upstream报错
在Windows环境下,配置Nginx 1.11.5进行负载均衡时遇到问题,服务无法启动。错误日志显示“invalid host in upstream”。检查发现上游服务器列表中,192.168.29.128的主机地址无效。负载均衡配置中,两个服务器地址前误加了"http://"。修正方法是删除上游服务器列表和proxy_pass中的"http://"。问题解决后,Nginx服务应能正常启动。
1249 4
解决nginx配置负载均衡时invalid host in upstream报错
|
负载均衡 算法 应用服务中间件
nginx自定义负载均衡及根据cpu运行自定义负载均衡
nginx自定义负载均衡及根据cpu运行自定义负载均衡
482 1