时间: 2015-06-23 02:12 栏目: 视频教程 浏览: 16770 赞: 37 踩: 7 字体: 大 中 小
以下为本篇文章全部内容:
负载均衡 建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。
负载均衡,英文名称为Load Balance,其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。
负载均衡拓扑图:

负载均衡有三种部署方式:路由模式、桥接模式、服务直接返回模式。
路由模式部署灵活,约60%的用户采用这种方式部署;桥接模式不改变现有的网络架构;服务直接返回(DSR)比较适合吞吐量大特别是内容分发的网络应用。约30%的用户采用这种模式。
我们本次教程采用的就是keepalived的路由模式来搭建的
准备工作:
1、4台centos操作系统服务器(其他linux也行,针对本文会有命令差异),两台做负载均衡代理服务器,两台做web服务器
2、服务器连接工具
配置信息:
负载均衡主服务器172.16.220.162
负载均衡从服务器172.16.220.135
web服务器172.16.220.164
web服务器172.16.220.163
先关闭所有服务器的防火墙,实验环境可以操作这步,实际环境请配置防火墙规则,关闭命令
service iptables stop#关闭防火墙 chkconfig iptables off#禁止重启再次启动
web服务器配置:
1、先安装web服务,我做实验就从yum进行安装了,执行下面命令安装apache和vim编辑器
yum install httpd vim -y
2、编辑网站显示文件
vim /var/www/html/index.html
3、在里面输入一段文字进行区分两台web服务器
4、启动web服务器
service httpd start
5、配置虚拟集群地址和设置成系统服务
vim /etc/init.d/realserver
SNS_VIP=172.16.220.100#集群虚拟地址
. /etc/rc.d/init.d/functions
case "$1" in
start)
ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP
/sbin/route add -host $SNS_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 $SNS_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 6、启动虚拟地址服务
service realserver start
到此web服务器配置就已经完成,两台web服务器配置方法是一样的,接下来我们配置负载均衡服务器
负载均衡服务器配置
1、安装负载均衡所需软件
yum -y install gcc gcc-c++ make automake autoconf kernel-devel ncurses-devel libxml2-devel openssl-devel popt-devel wget vim ipvsadm keepalived
2、配置负载均衡文件
! Configuration File for keepalived
global_defs {
notification_email {
admin@sunnyos.com
}
notification_email_from admin@sunnyos.com
smtp_server 127.0.0.1
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
172.16.220.100
}
}
virtual_server 172.16.220.100 80 {
delay_loop 6
lb_algo wrr
lb_kind DR
nat_mask 255.255.255.0
persistence_timeout 120
protocol TCP
real_server 172.16.220.164 80 {
weight 3
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 172.16.220.163 80 {
weight 3
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}上面配置解释:
global_defs:邮件配置,当服务器出现问题的时候会发邮件通知
state:主从模式 MASTER为主 BACKUP为从
interface:转发网卡
virtual_router_id:虚拟路由标识
priority:应用级别,该值1到254
advert_int:MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位为秒。
delay_loop:心跳检查间隔时间,单位为秒
lb_algo:负载均衡调度算法
lb_kind:负载均衡转发规则
persistence_timeout:会话保持时间
protocol:转发协议
authentication:验证域,同组的机器auth_type(验证类型)和auth_pass(验证密码)必须一样
virtual_ipaddress:虚拟ip
weight:权重,数值越大分配到的几率越大
tcp_check:tcp检查
connect_timeout:连接超时时间
nb_get_retry:重试连接次数
delay_before_retry:重新连接间隔时间
connect_port:连接端口
大家看完博文之后希望用理解的角度去看,不要直接复制代码过去直接就用了,不然过后就不知道怎么操作的了,重在理解,以后再遇到这种操作的时候就什么问题都不怕了。
谢谢大家对本博客的支持,本站专注原创技术文章,三更半夜做实验写文章不易,且看且珍惜博主的心得。请转载带上本文链接注明出处。
扫二维码快速加群:

如果大家有什么疑问可以加我QQ327388905进行解答,也可以加入交流群
总赞数量:18275
总踩数量:128089
文章数量:29