191145685 发表于 2019-1-5 09:10:37

配置Linux—LVS(DR) for http

  第一部分: DR模式配置
OS: CentOS 内核:2.6.32  Server1: 10.253.81.14 (负载服务器)
  虚拟服务IP: 10.253.81.12
  Realserver1: 10.253.81.11 (集群服务器)
Realserver2: 10.253.81.13 (集群服务器)实验目的:在负载服务器上,配置LVS(DR模式),做web服务器的集群。实现最终用户访问虚拟IP,负载服务器,将请求分发到集群下的服务器,由集群服务器轮流提供web服务。CentOS的内核版本已经集成了ipvsadm功能模块,所以不需要安装,直接使用即可。一、负载服务器安装ipvsadmyum install ipvsadm*安装完成后可以运行ipvsadm查看lvs状态  编辑一个shell文件,执行后,即启用LVS功能。当然,你也可以手动设置
  vi /tmp/lvs.sh
  #!/bin/bash
  vip=10.253.81.14
  rs1=10.253.81.11
  rs2=10.253.81.13
  gw=10.253.81.1
  #set virttual ip address
  /sbin/ifconfig eth0:0 $vip broadcast $vip netmask 255.255.255.255 up
  /sbin/route add -host $vip dev eth0:0
echo 1 > /proc/sys/net/ipv4/ip_forward  #clear ipvs tables
  /sbin/ipvsadm -C
  #set LVSServer
  /sbin/ipvsadm -A -t $vip:80 -s rr
  /sbin/ipvsadm -a -t $vip:80 -r $rs1:80 -g
  /sbin/ipvsadm -a -t $vip:80 -r $rs2:80 -g
  #run lvs
  /sbin/ipvsadm因为此实验本负载服务器也提供web服务,所以要在/var/www/html下建立一个测试文件 index.html,然后service httpd start 启动http服务。
二、集群服务器  所有集群服务器忽略ARP回应,在每台群服务器上都要进行如下设置,执行以下脚本即可
  vi /tmp/lvs.sh
  #!/bin/bash
  vip=10.253.81.14
  /sbin/ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up
  /sbin/route add -host $vip dev lo:0
  echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
  echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
  echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
  echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
在 /var/www/html 下新建立一个index.html测试文件,然后 service httpd start启动http服务。三、测试  在客户端反复访问:10.253.81.14 如果能轮流显示出 10.253.81.11和10.253.81.13的http测试文件,即LVS(DR模式)配置完成。
四、设置开机自动启动LVS编写开机自动运行脚本vi /etc/rc.d/init.d/lvs#!/bin/sh  #
  # lvs      Start lvs
  #
  # chkconfig: 2345 08 92
  # description:Starts, stops and saves lvs
  #
SNS_VIP=10.253.81.14  SNS_RIP1=10.253.81.11
  SNS_RIP2=10.253.81.13
  . /etc/rc.d/init.d/functions
#logger $0 called with $1  retval=0
  start()
  {
  #set squid vip
  /sbin/ifconfig eth0:0 $SNS_VIP broadcast $SNS_VIP netmask 255.255.255.255 up
  /sbin/route add -host $SNS_VIP dev eth0:0
echo 1 > /proc/sys/net/ipv4/ip_forward  /sbin/ipvsadm -C
  /sbin/ipvsadm -A -t $SNS_VIP:80 -s rr
  /sbin/ipvsadm -a -t $SNS_VIP:80 -r $SNS_RIP1:80 -g
  /sbin/ipvsadm -a -t $SNS_VIP:80 -r $SNS_RIP2:80 -g
  touch /var/lock/subsys/ipvsadm > /dev/null 2 >&1
  /sbin/ipvsadm
  echo "ipvsadm started"
  }
stop()  {
  /sbin/ipvsadm -C
  /sbin/ipvsadm -Z
  route del -host $SNS_VIP dev eth0:0
  ifconfig eth0:0 down
  rm -rf /var/lock/subsys/ipvsadm > /dev/null 2 >&1
  echo "ipvsadm stoped"
  }
status()  {
  if [ ! -e /var/lock/subsys/ipvsadm ];then
  echo "ipvsadm stoped"
  exit 1
  else
  echo "ipvsadm OK"
  fi
  }
case "$1" in  start)
  start
  ;;
  stop)
  stop
  ;;
status)  status
  ;;
  restart)
  stop
  start
  ;;
  *)
echo $"Usage: $0 {start|stop|status}"retval=1esac exit $retval 用chkconfig命令添加开机自动启动  chkconfig --add lvs
  chkconfig --level 35 lvs on
  # chkconfig |grep lvs
  lvs             0:off   1:off   2:on    3:on    4:on    5:on    6:off
  #
  用service启动和停止lvs
  # service lvs start
  IP Virtual Server version 1.2.1 (size=4096)
  Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port         Forward Weight ActiveConn InActConn
  TCP10.253.81.14:http rr
  -> 10.253.81.11:http            Route   1      0          0
  -> 10.253.81.13:http            Route   1      0          0
  ipvsadm started
  # service lvs stop
  ipvsadm stoped
  # service lvs status
  ipvsadm stoped
  #

页: [1]
查看完整版本: 配置Linux—LVS(DR) for http