用Piranha来实现WEB的负载均衡

简介:

简述:利用(LVS+Piranha)基于完整开源软件的架构可以提供一个简单的负载均衡及高可用的服务架构。LVS 集群采用 IP 负载均衡技术和基于内容请求分发技术。调度器具有很好的吞吐率(在DR模式下),将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故 障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。

生产环境中使用效果图:

环境:CentOS 5.5  x64

lb01:  192.168.0.111
lb02:  192.168.0.112
VIP:   192.168.0.115
web01: 192.168.0.114
web02: 192.168.0.115

安装piranha


  
  
  1. yum -y install piranha ipvsadm 

#通过piranha-passwd设置Piranha的管理员密码


  
  
  1. piranha-passwd   

#启动piranha的WEB管理界面(可选)


  
  
  1. /etc/init.d/piranha-gui start   

通过浏览器访问http://192.168.0.111:3636,单击”Login”,使用用户名piranha及刚刚设定的密码进行登录

注:在此界面下可以图形化配置,也可不启用此WEB界面,直接编辑配置文件来配置


  
  
  1. vi /etc/sysconfig/ha/lvs.cf 

 


 
 
  1. serial_no = 41 
  2. #primary_private = 10.0.0.1 
  3. service = lvs 
  4. backup_active = 1 
  5. backup = 192.168.0.112 
  6. #backup_private = 10.0.0.2 
  7. heartbeat = 1 
  8. heartbeat_port = 539 
  9. keepalive = 6 
  10. deadtime = 18 
  11. network = direct 
  12. debug_level = NONE 
  13. monitor_links = 1 
  14. syncdaemon = 1 
  15. virtual web_vip { 
  16. active = 1 
  17. address = 192.168.0.115 eth0:1 
  18. vip_nmask = 255.255.255.255 
  19. sorry_server = 127.0.0.1 
  20. port = 80 
  21. pmask = 255.255.255.255 
  22. use_regex = 0 
  23. load_monitor = none 
  24. scheduler = rr 
  25. protocol = tcp 
  26. timeout = 6 
  27. reentry = 15 
  28. quiesce_server = 0 
  29. server web01 { 
  30. address = 192.168.0.113 
  31. active = 1 
  32. port = 80 
  33. weight = 1 
  34. server web02 { 
  35. address = 192.168.0.114 
  36. active = 1 
  37. port = 80 
  38. weight = 1 
  39.  

#开启路由转发功能


  
  
  1. sed -i 's#net.ipv4.ip_forward = 0#net.ipv4.ip_forward = 1#'  /etc/sysctl.conf 
  2. sysctl -p 

以上步骤在lb01,lb02上操作,lvs.cf 直接用scp 即可,无需改动,主备一致。

#启动piranha


  
  
  1. /etc/init.d/pulse start 

登录WEB01、WEB02

WEB环境部署略

RealServer VIP启动脚本:


 
 
  1. #!/bin/bash 
  2.  
  3. VIP=192.168.0.115 
  4.  
  5. /etc/rc.d/init.d/functions 
  6.  
  7. case "$1" in 
  8. start) 
  9. echo "start LVS of REALServer" 
  10.  
  11. for ((i=0; i<`echo ${#VIP[*]}`; i++)) 
  12. do 
  13. interface="lo:`echo ${VIP[$i]}|awk -F . '{print $4}'`" 
  14. /sbin/ifconfig $interface ${VIP[$i]} broadcast ${VIP[$i]} netmask 255.255.255.255 up 
  15. done 
  16. echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore 
  17. echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce 
  18. echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore 
  19. echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce 
  20. ;; 
  21. stop) 
  22. /sbin/ifconfig lo:110 down 
  23. echo "close LVS Directorserver" 
  24. #echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore 
  25. #echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce 
  26. #echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore 
  27. #echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce 
  28. ;; 
  29. *) 
  30. echo "Usage: $0 {start|stop}" 
  31. exit 1 
  32. esac 

  
  
  1. chmod 700 /root/scripts/lvs_sh 

#启动VIP


  
  
  1. /root/scripts/lvs.sh start 

在lb01上查看:


 
 
  1. [root@lb01 ~]# ipvsadm -Ln 
  2. IP Virtual Server version 1.2.1 (size=4096
  3. Prot LocalAddress:Port Scheduler Flags 
  4. -> RemoteAddress:Port           Forward Weight ActiveConn InActConn 
  5. TCP  192.168.0.115:80 rr 
  6. -> 192.168.0.114:80             Route   1      0          0 
  7. -> 192.168.0.113:80             Route   1      2          0 

到此Piranha负载均衡部署完毕,做测试即可!

PS:以上只是一个简单的部署,目的是为了与大家分享此负载均衡方法与思路!!!

附录:lvs.cf配置详解
———————————————–
serial_no = 41                #序号
primary = 192.168.0.112       #主LVS的公网IP
#primary_private = 10.0.0.1   #内部ip地址,用于心跳检测
service = elain_lvs           #服务名称,可以自己定义
backup_active = 1             #是否有备份
backup = 192.168.1.211        #备份LVS的公网IP
#backup_private = 10.0.0.2
heartbeat = 1                 #是否开启心跳
heartbeat_port = 649          #心跳的UDP端口
keepalive = 6                 #心跳间隔(秒)
deadtime = 18                 #如果主 LVS 节点在deadtime(秒)后没有答复,那么备份 LVS 路由器节点就会发起失效转移。
network = direct              #LVS类型(direct,tunnel,nat),此处用direct类型
debug_level = NONE            #debug信息级别
monitor_links = 1             #是否开启realserver的监视功能,和后面的scheduler(调度算法)以及load_monitor相关
syncdaemon = 1
virtual web_vip {                        #虚拟服务的名称,可自定义. 可定义多个virtual lvs服务
active = 1                          #是否激活
address = 192.168.0.115 eth0:1      #虚拟服务所绑定的ip(vip)以及设备名
sorry_server = 127.0.0.1            #当rs全部失效时访问本机
vip_nmask = 255.255.255.255         #vip相对应的掩码
port = 80                           #虚拟服务的端口
persistent = 30                     #使用持久稳固的服务时间
pmask = 255.255.255.255             #如果使用持久会话,设置子网掩码
use_regex = 0                       #expect中是否使用正则表达式
load_monitor = none                 #LVS 路由器能够使用 rup 或 ruptime 来监视各个真正服务器的载量。
scheduler = rr                      #LVS调度算法
protocol = tcp                      #虚拟服务使用的协议类型
timeout = 6                         #realserver失效后从lvs路由条目中移除realserver所必须经过的时间(秒)
reentry = 15                        #移除以后的realserver重新加入lvs路由条目所必须经过的时间(秒)
quiesce_server = 0
server web01 {                      #realsever服务名称,可自定义,在这里我使用主机名
address = 192.168.0.113         #realserver的ip地址
active = 1                      #是否激活
port = 80                       #rs端口
weight = 1                      #权重
}
server web02 {
address = 192.168.0.114
active = 1
port = 80
weight = 1
}
}

转载请注明: 转载自http://www.elain.org

本文链接地址:用Piranha来实现WEB的负载均衡



本文转自 elain2012 51CTO博客,原文链接:http://blog.51cto.com/elain/701819


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
运维 负载均衡
【运维知识进阶篇】用阿里云部署kod可道云网盘项目(HTTPS证书+负载均衡+两台web)(三)
【运维知识进阶篇】用阿里云部署kod可道云网盘项目(HTTPS证书+负载均衡+两台web)(三)
478 0
|
负载均衡 监控 算法
论负载均衡技术在Web系统中的应用
【11月更文挑战第4天】在当今高并发的互联网环境中,负载均衡技术已经成为提升Web系统性能不可或缺的一环。通过有效地将请求分发到多个服务器上,负载均衡不仅能够提高系统的响应速度和处理能力,还能增强系统的可扩展性和稳定性。本文将结合我参与的一个实际软件项目,从项目概述、负载均衡算法原理以及实际应用三个方面,深入探讨负载均衡技术在Web系统中的应用。
413 2
|
负载均衡 算法 应用服务中间件
负载均衡技术在Web服务器集群中的应用
【8月更文第28天】随着互联网的发展和用户对Web服务需求的增长,单台服务器很难满足大规模访问的需求。为了提高系统的稳定性和扩展性,通常会采用Web服务器集群的方式。在这种架构中,负载均衡器扮演着至关重要的角色,它能够合理地分配客户端请求到不同的后端服务器上,从而实现资源的最优利用。
477 2
|
存储 负载均衡 应用服务中间件
Web架构&OSS存储&负载均衡&CDN加速&反向代理&WAF防护
Web架构&OSS存储&负载均衡&CDN加速&反向代理&WAF防护
415 1
|
缓存 负载均衡 应用服务中间件
【分布式技术专题】「分析Web服务器架构」Tomcat服务器的运行架构和LVS负载均衡的运行机制(修订版)
在本章内容中,我们将深入探讨 Tomcat 服务器的运行架构、LVS 负载均衡的运行机制以及 Cache 缓存机制,并提供相应的解决方案和指导。通过理解这些关键概念和机制,您将能够优化您的系统架构,提高性能和可扩展性。
563 4
【分布式技术专题】「分析Web服务器架构」Tomcat服务器的运行架构和LVS负载均衡的运行机制(修订版)
|
缓存 监控 应用服务中间件
如何使用负载均衡器提升Python Web应用的性能?
【2月更文挑战第27天】【2月更文挑战第94篇】如何使用负载均衡器提升Python Web应用的性能?
263 0
|
存储 弹性计算 负载均衡
使用SLB+2ECS+NAS,部署电商web网站的高可用架构
如您需要开发电商网站并且对外提供服务,当您的业务上升时,您需要为应用考虑高吞吐,高并发,高可用等能力,来应对用户的并发访问,保证应用稳定。本场景主要介绍如何使用SLB,ECS和NAS搭建高可用电商网站,助您业务上升。
|
运维 负载均衡 PHP
【运维知识进阶篇】用阿里云部署kod可道云网盘项目(HTTPS证书+负载均衡+两台web)(四)
【运维知识进阶篇】用阿里云部署kod可道云网盘项目(HTTPS证书+负载均衡+两台web)(四)
524 0
|
域名解析 运维 负载均衡
【运维知识进阶篇】用阿里云部署kod可道云网盘项目(HTTPS证书+负载均衡+两台web)(二)
【运维知识进阶篇】用阿里云部署kod可道云网盘项目(HTTPS证书+负载均衡+两台web)(二)
669 0
|
9月前
|
负载均衡 前端开发 应用服务中间件
Tomcat的负载均衡和动静分离(与nginx联动)
总的来说,负载均衡和动静分离是提高Web应用性能的两个重要手段。通过合理的配置和使用,我们可以让Web应用更好地服务于用户。
301 21

相关实验场景

更多