时间: 2015-06-23 02:12 栏目: 视频教程 浏览: 16570 赞: 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进行解答,也可以加入交流群
总赞数量:18274
总踩数量:128087
文章数量:29