lighty的lb问题

看了galaxystar的帖子之后对lighty有了初步的了解,而且从google的trends上也可以看出lighty确实是一个web server中迅速崛起的新星,势头非常之强劲,所以趁这个周末我也来学习一把

1,下载安装,我使用的是ubuntu7.10,所以下载lighttpd非常简单,只要执行
sudo apt-get install lighttpd 命令就可以下载并安装lighttpd了,我下载的好像是1.4的版本。
安装结束之后,它就自动启动了,这时候在流览器里输入http://localhost就可以看到lighttpd的页面了。

2,下载tomcat6.10,拷贝一份出来,修改conf目录下的server.xml,将connector中的8080改成18080。启动两个tomcat实例。这时候在浏览器里输入http://localhost:8080/index.jsp和http://localhost:18080/index.jsp,分别出现两个tomcat的页面,接下来在这两个index.jsp(webapps/root()目录下)分别加入以下代码<%out.println("-aaaaaa-");%>和<%out.println("-bbbbbb-");%>

3,接下来修改lighttpd.conf文件,在server.modules 数组中加入一个新的元素,如下:

server.modules = (

"mod_access",

"mod_alias",

"mod_accesslog",

"mod_compress",

# "mod_rewrite",

# "mod_redirect",

# "mod_status",

# "mod_evhost",

# "mod_usertrack",

# "mod_rrdtool",

# "mod_webdav",

# "mod_expire",

# "mod_flv_streaming",

"mod_proxy", #主要是增加这个节点,代表lighty将会使用proxy模块

# "mod_evasive"

)

接着在下面加上如下配置:

$HTTP["host"] == "localhost" {

$HTTP["url"] =~ ".jsp|.go|.do|action" {

proxy.balance = "fair"

proxy.server = ( "" => ( ( "host" => "127.0.0.1", "port" => 8080 ),("host" => "127.0.0.1", "port" => 18080) ))

}

}

上面这段配置浅显易懂,只有一个proxy.balance节点的熟悉比较奇怪。
lighttpd的配置要比apache简单的多了,而且更容易理解。这也是apache需要学习的地方。

4,重启lighttpd,看看有什么效果:./lighttpd restart

在浏览器中输入http://localhost/index.jsp
出现的页面上有-aaaaaa-这个字符串,这代表请求被转发到1号tomcat了,再多次请求,发现返回的页面上一直有a的字符串,而没有出现b的字符串,貌似lb没有产生效果。

ok,让我们来看看proxy.loadblance的几个值:
hash:表示相同的request uri会被发送到同一个proxyhandler,比如说现在我们有两个node,那么a.jsp的hashcode为1,b.jsp的hashcode为2,那么a.jsp的请求只会被发到node1(2),而b.jsp的请求只会被发到node2(1)。

fair:表示使用普通的基于负载的消极的均衡,什么意思呢,我的理解就是,当node1负载过高时,才把请求发给node2,所以就出现了上面的那种情况,不管你怎么刷,都是出现-aaaaaa-,而不会出现-bbbbbb-了。只有当node1压力过高时才会出现b。该策略是lighttpd默认的lb策略。

round-robin:表示不管怎么样都是轮发。也就是说通过这种方式我们不能通过设置factor来控制node的处理数量,这个是一个个小小的缺憾。更大的问题是据说lighttpd的round-robin不是很稳定,这个是最麻烦的(最大的麻烦是我没有试出来,一使用round-robin,lighttpd就跟我说:no proxy-handler found for: /,文档上写道:Check if you have used an IP address for the proxy address. Hostnames are not allowed there! 但是我没有用hostname也不行,有点郁闷了。
)。所以综合看来hash策略应该是最佳选择了。

题外话,lighttpd好像也不支持stickly-session吧,所以我觉得使用lighttpd来做lb不是很合适。在这个功能上它和apache还有较大差距,今天试用的是lighttpd1.4的版本,不知道1.5版本的lighttpd在这方面会不会好一点。有空我来试用一下lighttpd1.5的round-robin,看能否让它正常跑起来。

时间: 2024-08-12 10:21:51

lighty的lb问题的相关文章

lvs+keepalived实现LB热备实现网站高可用

在lvs高负载中,LB节点(也就是常说的DR)会存在单点问题:这里使用了keepalived来解决单点问题:实现冗余: 看图操作: LB1:eth0:192.168.182.133  (vip:eth0:0 192.168.182.200) LB2: eth0:192.168.182.138  (vip: eth0:0 192.168.182.200) rs1: eth0:192.168.182.130  (vip: lo:0   192.168.182.200) rs2: eth0:192.1

Kaggle HousePrice : LB 0.11666(排名前15%), 用搭积木的方式(一,原理)

关键词: 机器学习, 特征工程,调参, 比赛, Kaggle, House Price, 搭积木, 管道, Pandas Pipe, Sklearn Pipeline 本文预计阅读时间需要15分钟. 假定读者已经对Kaggle 和机器学习比赛有一定了解.(原文系列发表于知乎,这里可以赚积分,故也发一下) 我参加了两个Kaggle 比赛,一个是Titanic (分类),另一个是HousePrice(回归).分别获得了前7% (花了约3个月业余时间)和前13%排名(花了约2个月业余时间)的成绩.由于

mysql基于RHCS、Gtid主从复制的高性能、LB、HA集群架构

mysql基于RHCS.Gtid主从复制的高性能.LB.HA集群架构 本文基于2个角度进行 1:mysql主从复制,读写分离部分 2:RHCS实现mysql-proxy.mysql-master.lvs高可用 架构图 可能会用到的yum源 http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm http://elrepo.org/elrepo-release-6-5.el6.elrepo.noarch.r

高可用集群HA及负载均衡集群LB的实现方法

集群是个热门话题,在企业中越来越多地应用Linux操作系统提供邮件.Web.文件存储.数据库等服务,随着Linux应用的日益增长,高可用及http://www.aliyun.com/zixun/aggregation/13996.html">负载均衡Linux集群也在企业中逐步地发展起来.Linux平台的低成本.高性能.高扩展性使得Linux集群能够以低廉的价格很好地满足各种应用的需求. 本文介绍Linux集群的基础知识,集群的分类.在熟悉集群的基础知识后会以RHCS(RedHat Clu

Kaggle HousePrice : LB 0.11666(前15%), 用搭积木的方式(2.实践-特征工程部分)

Kaggle HousePrice : LB 0.11666(前15%), 用搭积木的方式(2.实践-特征工程部分) 王勇 14 天前 关键词: 机器学习,Kaggle 比赛,特征工程,pandas Pipe, sklearn Pipeline,刷法大法, 自动化 从上篇文章发布到我这篇文章,一共收到了78个赞.谢谢各位看官捧场. 本文正文部分阅读预计要花30分钟左右.假定读者已经对Kaggle, Python, Pandas,统计有一定了解.后面附相关代码,阅读需要时间因人而异. 这两天在忙着

LB 负载均衡的层次结构(转)

作为后端应用的开发者,我们经常开发.调试.测试完我们的应用并发布到生产环境,用户就可以直接访问到我们的应用了.但对于互联网应用,在你的应用和用户之间还隔着一层低调的或厚或薄的负载均衡层软件,它们不显山不露水默默的发挥着重要的作用,以至于我们经常忽略了它们的存在.因为负载均衡层通常不在一般开发人员的问题域内,而且它们一般都是现成且成熟的解决方案,以至于我们习惯性的忽略和认为乏善可陈.其实不然,本文就写写我对负载均衡层次结构的认知和理解. 硬负载 所谓「硬负载」就是采用硬件设备来提供负载均衡. 在七

PostgreSQL 10.0 preview 功能增强 - libpq支持多主机连接(failover,LB)让数据库HA和应用配合更紧密

标签 PostgreSQL , 10.0 , libpq , jdbc , failover , loadbalance , multi host , target_session_attrs 背景 数据库一主多备,这个词在互联网应该不陌生.但是主备切换和应用程序如何配合才能天衣无缝呢?你可能会有这样的疑问. 1. 什么类型的QUERY发给主库,什么类型的QUERY发给备库? 2. 主库和备库发生了角色切换之后,客户端连接如何配合? 业界有一些做法可以回答这两个问题. 1. 通常使用集群软件,使

Label lb = (Label)GridView1.FooterRow.FindControl(&amp;amp;quot;Label2&amp;amp;quot;);-------&amp;amp;gt;&amp;amp;gt;未将对象引用设置到对象

问题描述 解决办法可以强制转换成GridViewRowrow=((Control)e.CommandSource).BindingContainerasGridViewRow;Labeluid=(Label)row.FindControl("lblfiles"); 解决方案 解决方案二:FindControl("Label2")不是找到的是个null啊你加个断点跟着跑一下试试解决方案三:GridView1.FooterRow.FindControl("La

数据库案例集锦 - 开发者的《如来神掌》

背景 「剑魔独孤求败,纵横江湖三十馀载,杀尽仇寇,败尽英雄,天下更无抗手,无可柰何,惟隐居深谷,以雕为友.呜呼,生平求一敌手而不可得,诚寂寥难堪也.」 剑冢中,埋的是剑魔独孤求败毕生几个阶段中用过的几柄剑: 利剑无意:第一柄是青光闪闪的利剑,凌厉刚猛,无坚不摧,弱冠前以之与河朔群雄争锋. 软剑无常:第二柄是紫薇软剑,三十岁前所用,误伤义士不祥,悔恨不已,乃弃之深谷. 重剑无锋:第三柄是玄铁重剑,重剑无锋,大巧不工,四十岁之前恃之横行天下. 木剑无俦:第四柄是已腐朽的木剑. 无剑无招:四十岁后,不