linux负载均衡lvs脚本,Linux(centos 6.X)环境下LVS-DR模式高可用负载均衡集群系统快速配置...

为了丰富21运维网站内容和记录下配置服务器步骤,本文简单记录下Linux环境下lvs-dr模式(基于请求包mac地址欺骗)负载均衡简单配置,揭开这个神秘东西的面纱,让你10钟搞定配置lvs。

环境配置:    三台centos 6.5

调度器:        DIP:192.168.1.11   VIP:192.168.1.110

web服务器: RIP:192.168.1.9     RIP:192.168.1.10

一,前期服务器环境搭建

(1) 配置lamp环境,这里不做演示。

(2)关闭selinux和所有web服务器上的iptables

(3)设置时间同步,保证服务器时间一致(后期nfs或数据同步用到,包括session同步需要)

二,配置LVS

1,调度器安装ipvsadm和keepalived

首先安装依赖包:

yum -y install gcc make openssl-devel openssl net-snmp net-snmp-devel popt popt-devel

安装ipvs和keepalived:

yum install ipvsadm  keepalived  -y 并设置下:

chkconfig ipvsadm on

chkconfig keepalived on

修改keepalived.conf配置文件:

global_defs {

router_id LVSTEST #负载均衡器标识,同一网段内,可以相同

}

vrrp_instance LVSTEST {

state MASTER #主调度器

interface eth0 #实例绑定的网卡

#lvs_sync_daemon_inteface eth0 #主备间的监控接口

virtual_router_id 61 #vrrp唯一ID,主备id一致

priority 100 #优先级

advert_int 10 #主备间同步检查/秒

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

192.168.1.110 #vip,可以多个ip,每行一个

}

}

virtual_server 192.168.1.110 80 { #定义一个虚拟服务器

delay_loop 6 #健康检测间隔/秒

lb_algo wlc #调度算法

lb_kind DR #模式

persistence_timeout 30 #回话保持时间

protocol TCP #转发协议

#多个real_server重复本节点即可

real_server 192.168.1.9 80 { #定义一台真实服务器

weight 3 #权重

TCP_CHECK { #通过tcpcheck判断真实服务器状态

connect_timeout 10 #连接超时

nb_get_retry 3 #重试次数

delay_before_retry 3 #重试间隔

connect_port 80 #检测端口

}

}

real_server 192.168.1.10 80 {

weight 3

TCP_CHECK {

connect_timeout 10

nb_get_retry 3

delay_before_retry 3

connect_port 80

}

}

}

配置完以后启动keepalived:

service keepalived start

启动以后ipvsadm  -L 可以查看vip以及rip绑定情况。如果和keepalived配置一致,那么设置正常。如果不一致或无IP信息加载,则需检查。

2,RIP服务器配置VIP和arp禁止响应

vip就是上边的vip添加网卡的命令,写入rc.loca启动中。

/sbin/ifconfig lo:0 192.168.1.110 broadcast 192.168.1.110 netmask 255.255.255.255 up

/sbin/route add -host 192.168.1.110 dev lo:0

arp禁止响应:

vi /etc/rc.local

/usr/local/sbin/realserver.sh stop

/usr/local/sbin/realserver.sh start

保存。

创建禁止arp响应脚本

touch /usr/local/sbin/realserver.sh

chmod 755 /usr/local/sbin/realserver.sh

#!/bin/bash

WEB_VIP=192.168.1.110

. /etc/rc.d/init.d/functions

case "$1" in

start)

ifconfig lo:0 $WEB_VIP netmask 255.255.255.255 broadcast $WEB_VIP

#/sbin/route add -host $WEB_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 "RealServer Start OK"

;;

stop)

ifconfig lo:0 down

#route del $WEB_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 "RealServer Stoped"

;;

*)

echo "Usage: $0 {start|stop}"

exit 1

esac

exit 0

好了,域名host定向到vip,安装一个dz论坛测试看下效果。已经OK。

f4de8a7ec55639cf5b5eded0d7165876.png

查看调度器上的链接情况:f393005886b140d8e5ce9a7590b36099.png

中间可能有个别朋友遇到一些报错,这里简单记录下我之前遇到的报错解决思路:

配置完以后不能访问问题:定向到RIP不可以访问,说明RIP本身设置的有问题。如果rip可以访问,那么是vip或lvs调度器配置有问题。

补充LVS添加url检测防止假死:

real_server 192.168.1.120 80 {

weight 50

HTTP_GET {

url {

path /ok.php

status_code 200

}

connect_timeout 10

nb_get_retry 3

delay_before_retry 3

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值