当前位置: 首页 > 编程日记 > 正文

用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 

#开启路由转发功能

  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


相关文章:

SQLServer数据库试题及答案

选择题:(20分) 1、根据关系数据基于的数据模型——关系模型的特征判断下列正确的一项:(___) A、只存在一对多的实体关系,以图形方式来表示。 B、以二维表格结构来保存数据,在…

php中怎样阻止网页进行跳转,阻止php页面跳转方法

阻止php页面跳转方法一、 header 函数header()函数的主要功能是将HTTP协议标头(header)输出到浏览器。参数void header (string string [,bool replace [,int http_response_code]])可选参数replace指明是替换前一条类似标头还是添加一条相同类型的标头,默认为替换。…

张宏江:人工智能的长远发展需要有人坐冷板凳

从金山 CEO 退休两年后,除了在源码资本任职投资合伙人,张宏江又在刚刚成立不久的北京智源人工智能研究院担任首届理事长,致力于推动不同行业分享大数据,让从事基础研究院所和 AI 的创业公司更容易获得数据。作为一个横跨产学研、投…

Python 中的进程、线程、协程、同步、异步、回调(一)

在进一步之前,让我们先回顾一下各种上下文切换技术。 不过首先说明一点术语。当我们说“上下文”的时候,指的是程序在执行中的一个状态。通常我们会用调用栈来表示这个状态——栈记载了每个调用层级执行到哪里,还有执行时的环境情况等所有有关…

php iis6 安装ssl证书,在IIS下部署SSL证书实现HTTPS

HTTPS是以安全为目标的HTTP通道,简单讲是HTTP的安全版。谷歌已经制定了一项长远的计划,它的最终目标是将所有通过HTTP协议呈现的网页标为“不安全”,对于站长来说,部署SSL证书来迁移到HTTPS是一个现实和重要的问题,那么…

今晚8点直播 | 微软亚洲研究院副院长刘铁岩:机器学习技术前沿与未来展望

人工智能正受到越来越多的关注,而这波人工智能浪潮背后的最大推手就是“机器学习”。机器学习从业者在当下需要掌握哪些前沿技术?展望未来,又会有哪些技术趋势值得期待? AI科技大本营联合华章科技特别邀请到了微软亚洲研究院副院…

11月最佳机器学习开源项目Top10!

整理 | Jane出品 | AI科技大本营过去一个月,我们从近 250 个机器学习开源项目中挑选出了最受大家关注的前十名。这些项目在 GitHub 上平均 Stars 数为 2713。这些项目涉及由 Google AI Research 开源的 BERT 预训练模型、DeepMind 开源的图网络库、Facebook Researc…

notepad php发布网站,谈谈如何把WordPress部署到服务器上

第一次部署本网站,稀里糊涂差不多用了大半天,真是惭愧呀,很想狠狠的抽自己一下。老子信了你的邪!!!废话不多说,大概的步骤是:前奏1.注册域名--云主机购买--域名备案--域名解析(dodo也是首次对这…

单列索引和复合索引的使用

表结构: mysql> desc car; ----------------------------------------------------------- | Field | Type | Null | Key | Default | Extra | ----------------------------------------------------------- | id | int(3) | NO …

java学习1

工作了很久,以前学的技术都差不多忘了,为了不荒废技术,现在开始起学习java,并将学习中遇到的问题加以记录。问题1、Exception in thread "main" java.lang.NoClassDefFoundError解决方法:这类问题导致的可能…

ICLR 2019高分论文抢先看,谁是第一?

作者 | 非主流出品 | AI科技大本营 ICLR 2019 将于明年的 5 月 6-9 日在美国路易斯安那州的新奥尔良市举行。本届大会共收到近 1600 篇投稿,相比 ICLR 2018 的 935 篇,以及 ICLR 2017 的 490 篇,几乎每年都在翻番。此前,ICLR 一直…

招行java开发面试,面经:Java后台开发-招行网络科技

一面:留学党的惯性凌晨面试1内容:自我介绍Final关键字数据库(mysql/oracle二选一)数据库调优脏幻不可重复读(mybatis/radis二选一)基本操作(批量插入/如何保证一致性)几种创建新对象方法我成功引导向了反射的诸多应用TCP/UDP老生常谈的区别和三挥四握问题…

puppet相关问题统计

1、 notice: Run of Puppet configuration client already in progress; skipping 解决方法: 部分情况下puppet服务会无法启动,且会提示puppet已经启动,这个时候需要删除一个文件。 rm /var/lib/puppet/state/puppetdlock …

WebForm中DataGrid的20篇经典文章

1、DataGrid动态模板列更新数据并且分页的例子 http://www.cnblogs.com/lovecherry/archive/2005/03/26/126102.html 2、DataGrid动态添加模板列的一个例子 http://www.cnblogs.com/lovecherry/archive/2005/03/25/125526.html 3、DataGrid实现增删(带提示&#xff…

Kotlin基本语法和使用

Kotlin 是一个基于 JVM 的新的编程语言,由 JetBrains 开发。与Java相比,Kotlin的语法更简洁、更具表达性,而且提供了更多的特性。 Kotlin是使用Java开发者的思维被创建的,Intellij作为它主要的开发IDE。对于 Android开发者&#…

java注解返回不同消息,Spring MVC Controller中的一个读入和返回都是JSON的方法如何获取javax.validation注解的异常信息...

Spring MVC Controller中的一个读入和返回都是JSON的方法怎么获取javax.validation注解的错误信息?本帖最后由 LonelyCoder2012 于 2014-03-14 03:16:27 编辑标题可能有点绕,看代码就明白了:这是我的User类:import org.hibernate.…

三摄正普及,四摄在路上?谷歌逆天AI算法,只做单摄虚化

作者| 琥珀出品| AI科技大本营想要提高拍照效果,想必对于多数手机厂商而言,给手机塞进更多的摄像头似乎成了当前主流做法,例如“普通摄像头景深摄像头”、“黑白彩色摄像头”、“广角长焦摄像头”……不过,偏偏有这么一家企业反其…

TBContact -- 导出ThunderBird邮件地址本

我写的一个导出ThunderBird邮件地址本的小工具,使用了多线程。其功能有:1 自动检测系统是否装有ThunderBird,并列出所有的地址本文件*.mab。2 可以手工指定一个或多个地址本文件。3 自动检测每个地址本文件里的联系人个数。4 导出每个地址本文…

Linux基础知识入门测试

记录于51CTO的测试题: 第 1 题 Linux中,默认的管理员帐户名称是 A. Administrator B. Admin C. root D. user 第 2 题 在Linux中,如果在文本模式下,可以通过下述的方法进入x window A. 执行startx B. 执行start …

jsp mysql 图片路径,请教JSP中怎么向MySql中存入和取出图片

当前位置:我的异常网 Java Web开发 请教JSP中怎么向MySql中存入和取出图片请教JSP中怎么向MySql中存入和取出图片www.myexceptions.net 网友分享于:2015-08-27 浏览:138次请问JSP中如何向MySql中存入和取出图片?1 直接把图片存入数据库2 把图片的…

开源 | IBM、哈佛共同研发:Seq2Seq模型可视化工具

作者 | Ben Dickson译者 | 刘旭坤编辑 | Jane出品 | AI科技大本营近年来随着深度学习和神经网络技术的发展,机器翻译也取得了长足的进步。神经网络结构越来越复杂,但我们始终无法解释内部发生了什么,“黑箱问题”一直困扰着我们。我们不清楚程…

h3c l2tp ***配置

远程用户-------internet-------F100 采用l2tp方式sysname XXXX //设备名称#l2tp enable //开启l2tp功能 #firewall packet-filter enablefirewall packet-filter default permit#undo connection-limit enableconnection-limit default den…

Blockchain与Big Data将碰撞出怎样的火花?

区块链技术热潮席卷全球,正在与各种新兴技术深入融合——大数据也不例外,卓有远见的企业已将区块链作为未来发展重点。数据开放的大势下,如何保护隐私与安全是大数据领域的难点与挑战。凭借可信与安全的特性,区块链令越来越多高价…

机器学习之开源库

机器学习库(1)scikit-learn [http://scikit-learn.org/] Python下做机器学习,首推scikit-learn。该项目文档齐全、讲解清晰,功能齐备,使用方便,而且社区活跃。 (2)Orange …

arduino跑python,尝试在我的Arduino和stu上执行Python3.7.2中的代码

提前谢谢你。在我会尽量简短。在我有一个ArduinoIDE,有一个串行端口,工作正常。我下载了python3.7.2、PySerial和VPython。全部安装完毕。在通过我的MacBook终端安装了PySerial。sudo easy_install pyserialPassword: Searching for pyserialBest match:…

揭开Windows XP 系统安全模式的密秘

经常使用电脑的人可能都听说过,当电脑出了故障时,Windows会提供一个名为“安全模式”的平台,在这里用户能解决很多问题--不管是硬件(驱动)还是软件的。然而你会使用这个安全模式么?今天我们就来带您认识一下…

matlab文档型数据导入,MATLAB-数据导入

MATLAB-数据导入在MATLAB中导入数据意味着从外部文件加载数据。 importdata函数允许加载不同格式的各种数据文件。它具有以下五种形式-Sr.No.Function & Description1A importdata(filename)Loads data into array A from the file denoted by filename.2A importdata(‘…

专访百度熊辉:有人转AI纯粹因为好找工作,这样的人不是我想要的

2018 年初,学术界的明星人物,美国罗格斯-新泽西州立大学教授、ACM 杰出科学家、长江学者熊辉加盟百度,担任百度商业智能实验室主任以及百度人才智库主任。 从计算机博士到商学院教授,再从学术圈到工业界,熊…

活下去,是一种信念 !

2008年5月12日14:28分以来,读着不想看到的文字和数据,看着不愿看见的图片和画面,已经成了我的主要生活内容。即便是艰难收拾好心情坐在电脑前的此刻,耳边回响的依然是那种撕心裂肺的痛哭和感天动地的呼喊,眼前浮现的依…

我的一个rsync的包装

我完成了一个基于rsync的文件同步方案,其实有人会问,直接用rsync命令不就可以了吗?其实不然,直接用这个命 令的话只能保证得到了同步的效果,审计信息得不到,然而审计信息很重要,比如哪个时间同步…