设为首页 收藏本站
查看: 1509|回复: 0

[经验分享] CentOS 6.0 配置LVS(DR)+KeepAlived+nginx--- (2)

[复制链接]

尚未签到

发表于 2015-11-20 09:16:14 | 显示全部楼层 |阅读模式
七、Master安装步骤:
1、安装ipvsadm 和 KeepAlived for Master
  [iyunv@RServer2 soft]#mkdir /soft
  [iyunv@RServer2 soft]#cd /soft
  [iyunv@RServer2 soft]# wgethttp://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz
  [iyunv@RServer2 soft]# wgethttp://www.keepalived.org/software/keepalived-1.1.17.tar.gz
  [iyunv@RServer2 soft]#ln -s/usr/src/kernels/2.6.32-71.el6.i686/ /usr/src/linux
  [iyunv@RServer2 soft]# tar -zxvfipvsadm-1.24.tar.gz
  [iyunv@RServer2 soft]# cd ipvsadm-1.24
  [iyunv@RServer2 ipvsadm-1.24]# make;makeinstall
  [iyunv@RServer2 ipvsadm-1.24]# cd ..
  [iyunv@RServer2 soft]# tar -zxvfkeepalived-1.1.17.tar.gz
  [iyunv@RServer2 soft]# cd keepalived-1.1.17
  [iyunv@RServer2 soft]# ./configure--prefix=/usr/local/keepalived
  [iyunv@RServer2 keepalived-1.1.17]#make;make install
  顺利的话就这些步骤了,如果出现错误提示,那么根据具体的错误具体处理,一般可能出现的错误:
  
  1)、OpenSSL,提示可能如下
  !!! OpenSSL is not properly installed onyour system. !!!
  !!! Can not include OpenSSL headers files.
  解决方案:运行yum -y installopenssl-devel
  
  2)、提示没有gcc编译器
  解决方案:运行yum installncurses-devel gcc gcc-c++ make rpm-build
  

2、配置keepalived forMaster
  [iyunv@RServer2 keepalived-1.1.17]# cp/usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/keepalived
  [iyunv@RServer2 keepalived-1.1.17]# cp/usr/local/keepalived/sbin/keepalived /usr/sbin/
  [iyunv@RServer2 keepalived-1.1.17]# cp/usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
  [iyunv@RServer2 keepalived-1.1.17]# mkdir -p/etc/keepalived/
  [iyunv@RServer2 keepalived-1.1.17]# cp/usr/local/keepalived/etc/keepalived/keepalived.conf/etc/keepalived/keepalived.conf
  [iyunv@RServer2 keepalived-1.1.17]# chmod +x/etc/init.d/keepalived
  [iyunv@RServer2 keepalived-1.1.17]# gedit/etc/keepalived/keepalived.conf
  或是
  [iyunv@RServer2 keepalived-1.1.17]# vi/etc/keepalived/keepalived.conf
  

  keepalived.conf文件如下:
  #Master服务器上的配置/etc/keepalived/keepalived.conf
  global_defs {
  notification_email {
  likx@****.com #可以多个地址
  }
  notification_email_from likx@****.com
  smtp_server 192.168.0.**
  smtp_connect_timeout 30
  router_id LVS_DEVEL
  }
  
  #监测ipvsadm进程状态,每3秒执行一次
  vrrp_script chk_ipvsadm{
  script "/usr/local/keepalived/chk_ipvsadm.sh"
  interval 3
  weight 3
  }
  
  vrrp_instance VI_1 {
  state MASTER #标示状态为MASTER 备份机为BACKUP
  interface eth0
  virtual_router_id 51
  priority 100   #MASTER权重要高于BACKUP 比如BACKUP为99
  advert_int 5
  mcast_src_ip 192.168.20.101 #Master服务器IP,如果是备份机请填写备份机的IP
  

  authentication {
  auth_type PASS #主从服务器验证方式
  auth_pass 1111
  }
  
  virtual_ipaddress {
  192.168.20.99 #虚拟IP
  }
  }
  
  #虚拟服务器 21端口的配置
  virtual_server 192.168.20.99 21 {
  delay_loop 10           #(每隔10秒查询realserver状态)
  lb_algo rr              #(lvs 算法)
  lb_kind DR              #(DirectRoute)
  persistence_timeout 60 #(同一IP的连接60秒内被分配到同一台realserver)
  protocol TCP         #(用TCP协议检查realserver状态)
  

  #实际服务器的IP和端口
  real_server 192.168.20.102 21 {
  weight  5
  TCP_CHECK {
  connect_timeout 10
  connect_port 21
  }
  }
  

  #实际服务器的IP和端口
  real_server 192.168.20.100 21 {
  weight  5
  TCP_CHECK {
  connect_timeout 10
  connect_port 21
  }
  }
  
  #实际服务器的IP和端口
  real_server 192.168.20.101 21 {
  weight  5
  TCP_CHECK {
  connect_timeout 10
  connect_port 21
  }
  }
  }
  
  #虚拟服务器 80端口的配置
  virtual_server 192.168.20.99 80 {
  delay_loop 6
  lb_algo rr
  lb_kind DR
  protocol TCP
  

  real_server 192.168.20.102 80 {
  weight  5
  TCP_CHECK {
  connect_timeout 10
  connect_port 80
  }
  }
  
  real_server 192.168.20.100 80 {
  weight  5
  TCP_CHECK {
  connect_timeout 10
  connect_port 80
  }
  }
  
  real_server 192.168.20.101 80 {
  weight  5
  TCP_CHECK {
  connect_timeout 10
  connect_port 80
  }
  }
  }
  }
  

  
  keepAlived使用方式:
  /etc/init.d/keepalived start|stop|restart
  /usr/local/keepalived/chk_ipvsadm.sh文件内容如下:
  #!/bin/bash
  #
  # author: likexi
  # description:
  # 定时查看ipvsadm是否存在,如果不存在则启动ipvsadm,
  # 如果启动失败,则停止keepalived
  #
  status=$(ps aux|grep ipvsadm | grep -v grep| grep -v bash | wc -l)
  if [ "${status}" = "0"]; then
  service ipvsadm start
  status2=$(ps aux|grep ipvsadm | grep -v grep | grep -v bash |wc -l)
  if [ "${status2}" = "0"  ]; then
  /etc/init.d/keepalived stop
  fi
  fi
  
3、配置ipvsadm for Master
  把一下内容保存成:lvs_server.sh,并放置在/etc/init.d目录下
  #!/bin/bash
  #把一下内容保存成:lvs_server.sh
  #并放置在/etc/init.d目录下
  #如果想启动LVS Server执行:/etc/init.d/lvs_server.shstart
  #如果想停止LVS Server执行:/etc/init.d/lvs_server.shstop
  #如果想重启LVS Server执行:/etc/init.d/lvs_server.shrestart
  

  VIP=192.168.20.99 #虚拟IP,更具具体情况而变
  #有几个输入几个,与下面的配置对应,同时必须与KeepAlived.config配置对应
  RIP1=192.168.20.101 #实际的服务器IP
  RIP2=192.168.20.100 #实际的服务器IP
  RIP2=192.168.20.102 #实际的服务器IP
  . /etc/rc.d/init.d/functions # 如果提示权限不够,那么先在命令行执行: chmod 777 /etc/rc.d/init.d/functions
  case "$1" in
  
  start)
       echo "启动LVS服务器"  #设置虚拟IP和同步参数
  /sbin/ifconfig eth0:0 $VIP broadcast $VIP netmask 255.255.255.255 up     #此处的netmask不能使用其他地址

  echo "1" >/proc/sys/net/ipv4/ip_forward
  #清空 IPVS的内存数据
  /sbin/ipvsadm -C
  
  #设置LVS
  #开启FTP 21 端口服务,并指向RIP1和RIP2的服务器
  /sbin/ipvsadm -A -t $VIP:21 -s rr
  /sbin/ipvsadm -a -t $VIP:21 -r $RIP1:21 -g
  /sbin/ipvsadm -a -t $VIP:21 -r $RIP2:21 -g
  /sbin/ipvsadm -a -t $VIP:21 -r $RIP3:21 -g
  

  #开启WEB 80 端口服务,并指向RIP1和RIP2的服务器
  /sbin/ipvsadm -A -t $VIP:80 -s rr
  /sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g
  /sbin/ipvsadm -a -t $VIP:80 -r$RIP2:80 -g
  /sbin/ipvsadm -a -t $VIP:80 -r $RIP3:80 -g
  
  #运行LVS
  /sbin/ipvsadm -ln
  ;;
  stop)
  echo "关闭LVS服务器"
  echo "0" >/proc/sys/net/ipv4/ip_forward
  /sbin/ipvsadm -C
  /sbin/ifconfig eth0:0 down
  ;;
  

  restart)
  echo "关闭LVS服务器"
  echo "0" >/proc/sys/net/ipv4/ip_forward
  /sbin/ipvsadm -C
  /sbin/ifconfig eth0:0 down
  

  echo "启动LVS服务器"
  #设置虚拟IP和同步参数
  /sbin/ifconfig eth0:0 $VIP broadcast $VIP netmask 255.255.255.255 up               #此处的netmask不能使用其他地址
  echo "1" >/proc/sys/net/ipv4/ip_forward
  

  #清空 IPVS的内存数据
  /sbin/ipvsadm -C
  

  #设置LVS
  #开启FTP 21 端口服务,并指向RIP1和RIP2的服务器
  /sbin/ipvsadm -A -t $VIP:21 -s rr
  /sbin/ipvsadm -a -t $VIP:21 -r $RIP1:21 -g
  /sbin/ipvsadm -a -t $VIP:21 -r $RIP2:21 -g
  /sbin/ipvsadm -a -t $VIP:21 -r $RIP3:21 -g
  

  #开启WEB 80 端口服务,并指向RIP1和RIP2的服务器
  /sbin/ipvsadm -A -t $VIP:80 -s rr
  /sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g
  /sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g
  /sbin/ipvsadm -a -t $VIP:80 -r $RIP3:80 -g
  

  #运行LVS
  /sbin/ipvsadm -ln
  ;;
  *)
  
  echo "Usage: $0 {start|stop}"
  exit 1
  
  esac
  

  
  /etc/init.d/lvs_server.sh使用方法
  [iyunv@RServer2 ~]# chmod 777/etc/init.d/lvs_server.sh
  [iyunv@RServer2 ~]# chmod 777/etc/rc.d/init.d/functions
  [iyunv@RServer2 ~]#/etc/init.d/lvs_server.sh start|stop|restart
  

  到这里为止,Master配置完成。
  

八、Backup安装步骤:
  Backup的安装和Master的安装基本一致,只是一些参数略有变化。
  变化的参数为止如下:
  1、keepalived.conf文件中
  原:state MASTER #标示状态为MASTER 备份机为BACKUP
  state BACKUP  #标示状态改为BACKUP
  原:priority 100   #MASTER权重要高于BACKUP 比如BACKUP为99
  priority 99   #MASTER权重要高于BACKUP,MASTER为100,那么BACKUP略小于,比如99
  原:mcast_src_ip 192.168.20.101 #Master服务器IP,如果是备份机请填写备份机的IP
  mcast_src_ip 192.168.20.100  #换成BACKUP服务器IP
  
九、RealServer配置步骤:
  RealServer只需要在root目录下创建lvs_real_server.sh文件,并执行他一遍即可,lvs_real_server.sh的文件内容如下:
  #!/bin/bash
  #把一下内容保存成:lvs_real_server.sh
  #并放置在root目录下
  #如果想启动real Server执行:/root/lvs_real_server.shstart
  #如果想停止real Server执行:/root/lvs_real_server.shstop
  

  CLUSTER_VIP=192.168.20.99 #虚拟IP,更具具体情况而变
  . /etc/rc.d/init.d/functions # 如果提示权限不够,那么先在命令行执行: chmod 777 /etc/rc.d/init.d/functions
  case "$1" in
  start)
  /sbin/ifconfig lo:0 $CLUSTER_VIP netmask 255.255.255.255 broadcast$CLUSTER_VIP              #此处的netmask不能使用其他地址

  /sbin/route add -host $CLUSTER_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
  sysctl -p >/dev/null 2>&1
  echo "真实服务器启动....."
  ;;
  stop)
  /sbin/ifconfig lo:0 down
  /sbin/route del $CLUSTER_VIP >/dev/null 2>&1
  echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
  echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
  echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
  echo "0">/proc/sys/net/ipv4/conf/all/arp_announce
  echo "真实服务器停止....."
  ;;
  *)
  echo "Usage: $0 {start|stop}"
  exit 1
  esac
  

  /root/lvs_real_server.sh使用方法
  [iyunv@RServer2 ~]# chmod 777/root/lvs_real_server.sh
  [iyunv@RServer2 ~]# chmod 777/etc/rc.d/init.d/functions
  [iyunv@RServer2 ~]# /root/lvs_real_server.shstart|stop|restart
  

十、配置web服务器:
  在三台服务器上分别配置nginx服务器作为lvs集群系统的web服务器。分别修改每个nginx的index.html页面,使每台服务器上的起始页面可以容易分辨。具体做法请参照网络教程。

  
十一、LVS群集系统维护命令:
1、ipvsadm维护
  
  启动:/etc/init.d/lvs_server.sh start
  停止:/etc/init.d/lvs_server.sh stop
  重启:/etc/init.d/lvs_server.sh restart
  

2、keepAlived维护
  启动:/etc/init.d/keepalived start
  停止:/etc/init.d/keepalived stop
  重启:/etc/init.d/keepalived restart
  

3、real server 维护
  启动:/root/lvs_real_server.sh start
  停止:/root/lvs_real_server.sh stop
  

十二、验证:
  1、首先依次开启每个服务器上的各服务:
  /etc/init.d/lvs_server.sh start

        /etc/init.d/keepalived start  /root/lvs_real_server.sh start
  /usr/local/nginx/sbin/nginx start            #nginx服务器启动

  2、浏览器页面输入 http://192.168.20.99
  3、关闭master、backup,看看页面每次是否都会切换。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-141357-1-1.html 上篇帖子: Keepalived 设置不抢占资源 下篇帖子: 构建黄金组合LVS + Keepalived高可用负载均衡集群
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表