傅令江的光影色彩世界
留住记忆的点滴
  • 首页
  • 文学
    • 诗词鉴赏
    • 美文共读
    • 原创
  • 编程
    • php
    • asp
    • .net
    • VB
    • C/C++
    • 易语言
    • js
    • 其他
    • 逆向
  • 运维
    • windows
    • linux
  • 光影色彩
    • 电影
    • 音乐
  • 科技
    • 互联网
    • 手机
  • 生活
    • 情感
  • 微语
9月242014

用Piranha来实现WEB的负载均衡

作者:令狐江   发布:2014-9-24 10:01   分类:linux   阅读:3497次   评论:0条  

简述:利用(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. } 
  35. server web02 { 
  36. address = 192.168.0.114 
  37. active = 1 
  38. port = 80 
  39. weight = 1 
  40. } 
  41. } 
  42.  

#开启路由转发功能

																																												
																																												
  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
}
}




本文固定链接: https://www.fulingjiang.cn/linux/64.html

blogger
该日志由 令狐江 于2014-9-24 10:01 Wednesday发表在 linux 分类下。
版权所有:《傅令江的光影色彩世界》 → 《用Piranha来实现WEB的负载均衡》;
除特别标注,本博客所有文章均为原创. 互联分享,尊重版权,转载请以链接形式标明本文地址;
本文标签:
上一篇::php采集百度某关键词搜索结果的网址
下一篇:SVN在另类环境中实现自动提交的方法,nfs共享的方法

热门文章

  • 兄弟二周年祭

相关文章

  • 宝塔面板配置Let's Encrypt证书自动续签失效及解决方案
  • mod_rewrite中的REQUEST_URI
  • Nginx优化教程 实现突破十万并发
  • squid反向代理配置 -轮询方式
  • 巧用squid结合rewrite轻松分流
取消回复

发表评论

亲,头像对么?

提交中,请稍候……


木有头像就木JJ啦!还木有头像吗?点这里申请属于你的个性Gravatar头像吧!


  • 日历

  • 存档

    • 2024年10月(1)
    • 2023年2月(1)
    • 2022年11月(1)
    • 2022年10月(10)
    • 2022年9月(13)
    • 2022年8月(2)
    • 2022年7月(14)
    • 2022年6月(2)
    • 2022年5月(8)
    • 2022年4月(7)
    • 2022年3月(13)
    • 2022年2月(2)
    • 2022年1月(9)
    • 2021年12月(2)
    • 2021年11月(4)
    • 2021年10月(2)
    • 2021年9月(6)
    • 2021年7月(4)
    • 2021年6月(3)
    • 2021年5月(3)
    • 2021年4月(11)
    • 2021年3月(13)
    • 2021年2月(2)
    • 2021年1月(1)
    • 2020年12月(1)
    • 2020年4月(5)
    • 2019年9月(1)
    • 2019年8月(1)
    • 2019年5月(3)
    • 2018年3月(1)
    • 2017年10月(1)
    • 2016年7月(1)
    • 2016年4月(1)
    • 2015年12月(1)
    • 2015年11月(3)
    • 2015年9月(1)
    • 2015年8月(10)
    • 2015年7月(1)
    • 2015年6月(1)
    • 2015年4月(1)
    • 2015年3月(3)
    • 2015年2月(8)
    • 2015年1月(4)
    • 2014年12月(1)
    • 2014年11月(27)
    • 2014年10月(13)
    • 2014年9月(14)
    • 2014年8月(26)
    • 2014年7月(21)
  • 最新评论

    • 令狐江:
      喜欢这首歌是因为可以引起共鸣!
  • 链接

    • 演讲稿网
    • Recollect
    • 演讲稿
    • 祁阳人生活网
    • 我爱演讲稿网
  • 搜索

  • 标签

      函数 自定义方法 SEO 分页 分页函数 分页方法 nginx重新的一些规则
  • 分类

    • 文学(0)
    • 编程(0)
    • 运维(0)
    • 光影色彩(0)
    • 科技(0)
    • 生活(0)
    • 诗词鉴赏(3)
    • 美文共读(1)
    • 原创(10)
    • php(111)
    • asp(1)
    • .net(0)
    • VB(0)
    • C/C++(0)
    • 易语言(0)
    • js(8)
    • 其他(9)
    • 逆向(2)
    • windows(11)
    • linux(121)
    • 电影(0)
    • 音乐(1)
    • 互联网(4)
    • 手机(0)
    • 情感(2)
  • 最新文章热门文章随机文章

    • 兄弟二周年祭
    • openai给的ionCube 解密代码,应该是老版本可以这样
    • WordPress – 5秒盾防CC(PHP通用代码)
    • 我高中最好的朋友今天猝死了-伤心得不行
    • Linux系统中 systemd-journaldCPU占用异常的解决方法
    • SVN Skipped 'xxx' -- Node remains in conflict 错误的解决办法
    • 解决Linux读写nfs共享盘速度慢的问题
    • php 获取302跳转后的地址
    • 让vsftp显示隐藏文件的办法,比如显示 .htaccess
    • 添加自签名https证书到centos系统信任的问题
    • php根据关键字搜索百度网盘资源
    • PHP文件加密
    • PHP网站备份程序
    • PHP控制文件下载速度
    • PHP利用ctrl+v实现粘贴截图完成上传功能
Copyright © 2001-2025 傅令江的光影色彩世界. Powered by www.fulingjiang.cn ICP备案:京ICP备14015190号-5