<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>胖子的基地</title>
	<atom:link href="http://wenhui.ncu.me/feed" rel="self" type="application/rss+xml" />
	<link>http://wenhui.ncu.me</link>
	<description>大规模杀伤性服务研究中</description>
	<lastBuildDate>Tue, 07 Sep 2010 06:02:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>谁来PK“百度局域网”</title>
		<link>http://wenhui.ncu.me/2010/09/07/170.html</link>
		<comments>http://wenhui.ncu.me/2010/09/07/170.html#comments</comments>
		<pubDate>Tue, 07 Sep 2010 06:02:21 +0000</pubDate>
		<dc:creator>wenhui</dc:creator>
				<category><![CDATA[TMT]]></category>
		<category><![CDATA[投资|金融]]></category>
		<category><![CDATA[淘宝]]></category>
		<category><![CDATA[百度]]></category>
		<category><![CDATA[腾讯]]></category>

		<guid isPermaLink="false">http://wenhui.ncu.me/?p=170</guid>
		<description><![CDATA[来源:http://www.ftchinese.com/story/001034489 FT中文网 今后不必点击到其它网站，就可以直接在百度的搜索页面里玩游戏、看电影、翻书了。游戏、电影、图书这些第三方网站提供的内容和应用，都按照百度的规则被嵌入到搜索结果里——这就是李彦宏9月2日，耗时1小时所演示的百度“应用开放平台”。 百度开放平台？谁都懂这意味着互联网要变“天”了。但具体怎么变？ 与此同时，一个业内大佬A君发来短信：“百度是明修栈道、暗渡陈仓；表面开放支持合作伙伴，暗中开始收购垂直网站，最后变成站内搜索。”观点直接而彪悍。 李彦宏演讲后几分钟，座上嘉宾雷军和蔡文胜提出了担忧，引得全场雷动，看得出是捅到了痛处。第一，不少网站没敢跟百度合作，也就是没按百度的规则把应用嵌进来，是担心用户都留在百度，自己为人作嫁。第二，裁判会不会亲自下场踢球？也就是，百度会不会自己做游戏、做电影、做书，那我就没法玩了。第三，就算你不亲自做，但看我赚钱眼红，要取走90%的利润，或者要廉价收购，我咋办？ 大佬A君在暗，所以说得直接；雷军和蔡文胜在明，所以做君子，点到为止。其实从百度历史看，上面三个问题都已经存在一个确凿无疑的答案。比如搜《新三国》，第一个显示是奇艺网，这是百度投资的。比如搜“招商银行股价”，头两个显示都是和讯网，这是百度的战略合作伙伴。搜“小游戏”，第一个是百度自己的小游戏页面。且慢，再搜“李宇春”，第一个是百度百科、第二个是百度贴吧、第三个是百度MP3、第五个是百度视频、第六个是百度图片…… 老外会叫：Oh My God！中国人会叹：我的老天爷！这是互联网？还是百度的局域网？想起曹操有话：宁我负天下人，勿让天下人负我。 百度系内生存法则 百度做裁判+球员不是一天两天了。从有啊到百度Hi，从奇异到乐酷天，从空间到门户，从来不缺乏斗志和胃口。但既然如此，深刻而精明的雷军和蔡文胜老大为何还要憋着气在百度戏台上多此一问？ 人在屋檐下而已。 蔡文胜的4399是第一大的小游戏网站。雷军的7K7K是第二大。两者差距不大。且小游戏是新生行业，格局未稳，还在圈地时刻，缺乏品牌忠诚，需要握有75%以上搜索流量的百度源源不断的带来新用户。这就是雷军和蔡文胜必须与狼共舞、与虎谋皮的深刻历史背景。 之前的百度搜索，据说第一条搜索结果可以截获50%左右的流量，这样，剩下的50%还能被后面几家分食。但在打着“应用开放平台”或者“框计算”旗号下的新的搜索展示结果，第一条搜索结果以更大的空间和更美的设计展现，尤其是上文提到的，用户不需要再点击到另一个网站，直接在搜索结果页就可以玩游戏、看电影了。那么，据估计这一条搜索结果将会截获至少90%的流量。这意味着，只有第一，没有第二。 问题1：如果某个搜索词有90%流量被过度给预设好的某一家网站，这还是搜索引擎吗？ 大佬A君的回答是：“变成了站内搜索”。 问题2：如果百度捧大了一个细分行业的垄断者并且把自己变成了站内搜索，接下来干什么？ 大佬A君的回答是：“暗中收购垂直网站”。否则，百度就是为人作嫁、养虎为患、自寻死路。 到了这里，逻辑就清晰完整了。4399和7K7K所面临的一个极有可能发生的“杯具”就是：不跟百度合作，但失去搜索引擎导入新增用户，萎缩、死掉。或者跟百度合作，长大、称霸，但在这个过程中必须接受百度的控股，被贴上百度系的标签，创始人套现走人。 目前的现实是，4399选择观望，而7K7K早就一头扎进百度的怀抱。这跟各自实力相关。现在的百度风云榜，4399排在热门搜索第二位，每天至少几十万UV。而7K7K还上不了榜。这证明4399有强大的品牌。所以，蔡文胜大哥还有一搏的机会，看看能不能接着惯性把平台养大，就像淘宝那样跟百度PK。而7K7K，不抱着大腿，戏不大。 不过另一个数据是，7K7K最近增长迅猛，据称9月1号UV过1000万，达到4399的80%。可见百度的力量，可见格局未定，后来者有赶超的机会。 结论：在那些还处于同质化竞争、品牌忠诚度不够、缺乏垄断寡头的细分领域，百度可以瞬间改变规则。而且可以通过选择有效快速地扶持起一个网站，然后控股，组成百度系。之前，百度赚竞价排名的钱，从网站的推广费里拿。之后，百度赚各种各样的钱，玩游戏、看书、看电影，百度翅膀下各式网站赚到的每一块钱，就有5毛或者整个一块都被计入到百度账户，再乘以80倍市盈率，成为百度的市值。 百度不再是搜索引擎，而是航空母舰。设想一下，假如奇异成为最大的视频网站，乐酷天成为最大的B2C，有啊成为最大的分类信息……已经有人预估它10年后收入增长40倍。你知道，这还是相对保守的算法。 赢家通吃 现在进入正题。百度这么做，很多人“羡慕嫉妒恨”，站长们在微博和社区里“担忧埋怨骂”。但没啥用，核心要回答：谁来PK百度？想说两家公司：淘宝和腾讯。 百度这么干，一多半是淘宝逼的。 淘宝NB，做成了网购市场的老大，淘宝几乎成为网购代名词。百度眼红，自己做有啊。但迟了。握有70%的网购份额、90%的C2C份额的淘宝，一不做二不休封了百度。那些在百度上搜不到淘宝商品的主儿，愤而转到淘宝上搜索，百度的有啊没做大，还流失了有质量的搜索流量。现在，淘宝上的商品搜索，无论是质还是量，都是百度不能比的。大势已成。 比较下淘宝方案：第一，在细分领域做平台，定位跟搜索引擎一样，匹配用户需求和能满足这些需求的N多网站。第二，在细分领域做成垄断。让自己的名字成为该细分领域的代名词，比如淘宝=购物，QQ=聊天。第三，让用户形成来自家搜索的习惯。如此一来就有了实力做到第四，封百度。接着还有第五，做封闭式的开放，也就是把自己的数据导入第三方，通过联盟的形式为自己带来流量和用户。 百度的担忧是：有啊杯具不断上演；所有细分领域都出现一个淘宝。而且，互联网有赢家通吃的特点，细分行业极有可能出现淘宝。那就末日降临。 于是百度出招：趁着大多数领域都还没出现淘宝，赶紧进入。视频投了奇艺，B2C投了乐酷天，还有N多案子在谈，还未浮出水面，不好意思说。用意：用流量喂大自己投资的网站，把它们做成每个领域的淘宝。百度将来就是一个控股母公司，下面一堆小淘宝。淘宝年收入已经有百度60%了。所以有了“百度10年后收入长40倍”的估算。 将来百度的的组织结构，应该是一个母公司+一大堆控股垂直公司。百度本身的管理一直比较弱，整个公司就是一个大事业部，所以搜索以外，能干好的事情不多。譬如有啊之类的杯具历史一再重演。将来以独立的控股公司形式，避免管理成本的增加，通过现金和流量入股，给予创始人一定的非控股的自主权。 淘宝只是前半段，后半段要讲腾讯。换句话说，淘宝只在网购领域，而百度要在能赚到钱的N个细分领域都放开干了，这些领域出现淘宝的可能性直线降低。那谁来制衡？ 不好意思，绕来绕去绕不过腾讯。确实没办法。 中文互联网里，百度是流量的枢纽，腾讯是用户的老家。百度输出流量，腾讯输出用户。百度说：我用流量养大你，跟我走。腾讯说：我把用户分享给你，跟我走！百度给流量是把你呈现在搜索结果第一条，腾讯给用户是把6.13亿QQ用户开放给第三方网站，比如已经实现的豆瓣的书评和5分钟的游戏。就像Facebook干的那样。江湖传说已久，用QQ号和密码就可以直接登录各式论坛。这件事就快着陆了吧？ 虽然都能养第三方，但区别甚大。 百度的弱点。第一，一个流量，给了A，就不能给B，具有排他性。第二，今天给A带去一万个流量，其中有一百个变成A的忠实用户留下来，明天这一百个忠实用户继续留在A网站，但未必会通过百度搜索了。这一百个用户的此类需求，被百度长期的转移给了A网站。 腾讯的长处。第一，一个用户，分享给了A，还可以分享给B，不矛盾。Facebook的用户就是所有联盟网站的用户。第二，今天分享给A一万个用户，不管有多少个用户变成了A的忠实用户，这一万个用户都还是QQ的用户。他们从来没离开过。 说白了，流量是耗材，用完就没了。用户是长期价值，越用增在价值越大。 于是有结论：第一，腾讯更能够给更多的网站分享用户，而百度只能给一两家网站带流量。上面提过，百度搜索结果突出显示的第一条对流量的截获率可达到90%。第二，腾讯可以跟放心的给其它网站带去用户，而不是一定要控股这个网站。这才能实现大规模繁殖，真正形成一个联邦。 百度也有优势。流量是有具体需求的流量，比如玩游戏还是看书，随时可变现；而用户是没有具体需求的用户，要挖掘和匹配需求，再到变现，链条比较长。不过腾讯有相应的资源：QQ用户的海量生活数据，以及朋友关系链条，可以像Facebook那样通过人际推荐来实现。 百度还有个弱势。如果百度扶持的垂直网站经营情况不佳，会直接降低用户体验；这会威胁到百度的核心竞争力：作为搜索引擎匹配用户需求与相关网站的能力。 当然，百度生死事小，没人关心；网络生态的枯荣事大，国家GDP和草根就业还得靠这口。 期望看到的结局是： 第一，百度扶持的垂直网站，都走淘宝似的平台路线，别什么事情都自己做，鼓励生态繁荣。比如小游戏，传说4399就要做平台，让用户跟开发者直接见面，再跟开发者分成。也只有这样，4399们才有希望跟百度一拼。同样，百度也只能这样，才能避免饮鸩止渴。 第二，腾讯开放，向第三方网站输出用户。比如，假设7K7K跟百度混了，4399就可以跟腾讯混。两家制衡，整个互联网受益。腾讯刚刚收购康盛，康盛平台上跑着几百万家、中国70%以上的论坛。这后面的变招，太多。假如哪天用QQ号可以直接登录论坛，甚至，你在某论坛上玩过的某款游戏被推荐给你的朋友，别太意外。 （注：本文作者为腾讯网科技中心总监。本文仅代表作者本人观点。作者电子邮箱：james.l.cheng@gmail.com）]]></description>
			<content:encoded><![CDATA[<p>来源:http://www.ftchinese.com/story/001034489 FT中文网</p>
<p>今后不必点击到其它网站，就可以直接在百度的搜索页面里玩游戏、看电影、翻书了。游戏、电影、图书这些第三方网站提供的内容和应用，都按照百度的规则被嵌入到搜索结果里——这就是李彦宏9月2日，耗时1小时所演示的百度“应用开放平台”。</p>
<p>百度开放平台？谁都懂这意味着互联网要变“天”了。但具体怎么变？</p>
<p>与此同时，一个业内大佬A君发来短信：“百度是明修栈道、暗渡陈仓；表面开放支持合作伙伴，暗中开始收购垂直网站，最后变成站内搜索。”观点直接而彪悍。</p>
<p>李彦宏演讲后几分钟，座上嘉宾雷军和蔡文胜提出了担忧，引得全场雷动，看得出是捅到了痛处。第一，不少网站没敢跟百度合作，也就是没按百度的规则把应用嵌进来，是担心用户都留在百度，自己为人作嫁。第二，裁判会不会亲自下场踢球？也就是，百度会不会自己做游戏、做电影、做书，那我就没法玩了。第三，就算你不亲自做，但看我赚钱眼红，要取走90%的利润，或者要廉价收购，我咋办？</p>
<p>大佬A君在暗，所以说得直接；雷军和蔡文胜在明，所以做君子，点到为止。其实从百度历史看，上面三个问题都已经存在一个确凿无疑的答案。比如搜《新三国》，第一个显示是奇艺网，这是百度投资的。比如搜“招商银行股价”，头两个显示都是和讯网，这是百度的战略合作伙伴。搜“小游戏”，第一个是百度自己的小游戏页面。且慢，再搜“李宇春”，第一个是百度百科、第二个是百度贴吧、第三个是百度MP3、第五个是百度视频、第六个是百度图片……</p>
<p>老外会叫：Oh My God！中国人会叹：我的老天爷！这是互联网？还是百度的局域网？想起曹操有话：宁我负天下人，勿让天下人负我。<span id="more-170"></span></p>
<p>百度系内生存法则</p>
<p>百度做裁判+球员不是一天两天了。从有啊到百度Hi，从奇异到乐酷天，从空间到门户，从来不缺乏斗志和胃口。但既然如此，深刻而精明的雷军和蔡文胜老大为何还要憋着气在百度戏台上多此一问？</p>
<p>人在屋檐下而已。</p>
<p>蔡文胜的4399是第一大的小游戏网站。雷军的7K7K是第二大。两者差距不大。且小游戏是新生行业，格局未稳，还在圈地时刻，缺乏品牌忠诚，需要握有75%以上搜索流量的百度源源不断的带来新用户。这就是雷军和蔡文胜必须与狼共舞、与虎谋皮的深刻历史背景。</p>
<p>之前的百度搜索，据说第一条搜索结果可以截获50%左右的流量，这样，剩下的50%还能被后面几家分食。但在打着“应用开放平台”或者“框计算”旗号下的新的搜索展示结果，第一条搜索结果以更大的空间和更美的设计展现，尤其是上文提到的，用户不需要再点击到另一个网站，直接在搜索结果页就可以玩游戏、看电影了。那么，据估计这一条搜索结果将会截获至少90%的流量。这意味着，只有第一，没有第二。</p>
<p>问题1：如果某个搜索词有90%流量被过度给预设好的某一家网站，这还是搜索引擎吗？</p>
<p>大佬A君的回答是：“变成了站内搜索”。</p>
<p>问题2：如果百度捧大了一个细分行业的垄断者并且把自己变成了站内搜索，接下来干什么？</p>
<p>大佬A君的回答是：“暗中收购垂直网站”。否则，百度就是为人作嫁、养虎为患、自寻死路。</p>
<p>到了这里，逻辑就清晰完整了。4399和7K7K所面临的一个极有可能发生的“杯具”就是：不跟百度合作，但失去搜索引擎导入新增用户，萎缩、死掉。或者跟百度合作，长大、称霸，但在这个过程中必须接受百度的控股，被贴上百度系的标签，创始人套现走人。</p>
<p>目前的现实是，4399选择观望，而7K7K早就一头扎进百度的怀抱。这跟各自实力相关。现在的百度风云榜，4399排在热门搜索第二位，每天至少几十万UV。而7K7K还上不了榜。这证明4399有强大的品牌。所以，蔡文胜大哥还有一搏的机会，看看能不能接着惯性把平台养大，就像淘宝那样跟百度PK。而7K7K，不抱着大腿，戏不大。</p>
<p>不过另一个数据是，7K7K最近增长迅猛，据称9月1号UV过1000万，达到4399的80%。可见百度的力量，可见格局未定，后来者有赶超的机会。</p>
<p>结论：在那些还处于同质化竞争、品牌忠诚度不够、缺乏垄断寡头的细分领域，百度可以瞬间改变规则。而且可以通过选择有效快速地扶持起一个网站，然后控股，组成百度系。之前，百度赚竞价排名的钱，从网站的推广费里拿。之后，百度赚各种各样的钱，玩游戏、看书、看电影，百度翅膀下各式网站赚到的每一块钱，就有5毛或者整个一块都被计入到百度账户，再乘以80倍市盈率，成为百度的市值。</p>
<p>百度不再是搜索引擎，而是航空母舰。设想一下，假如奇异成为最大的视频网站，乐酷天成为最大的B2C，有啊成为最大的分类信息……已经有人预估它10年后收入增长40倍。你知道，这还是相对保守的算法。</p>
<p>赢家通吃</p>
<p>现在进入正题。百度这么做，很多人“羡慕嫉妒恨”，站长们在微博和社区里“担忧埋怨骂”。但没啥用，核心要回答：谁来PK百度？想说两家公司：淘宝和腾讯。</p>
<p>百度这么干，一多半是淘宝逼的。</p>
<p>淘宝NB，做成了网购市场的老大，淘宝几乎成为网购代名词。百度眼红，自己做有啊。但迟了。握有70%的网购份额、90%的C2C份额的淘宝，一不做二不休封了百度。那些在百度上搜不到淘宝商品的主儿，愤而转到淘宝上搜索，百度的有啊没做大，还流失了有质量的搜索流量。现在，淘宝上的商品搜索，无论是质还是量，都是百度不能比的。大势已成。</p>
<p>比较下淘宝方案：第一，在细分领域做平台，定位跟搜索引擎一样，匹配用户需求和能满足这些需求的N多网站。第二，在细分领域做成垄断。让自己的名字成为该细分领域的代名词，比如淘宝=购物，QQ=聊天。第三，让用户形成来自家搜索的习惯。如此一来就有了实力做到第四，封百度。接着还有第五，做封闭式的开放，也就是把自己的数据导入第三方，通过联盟的形式为自己带来流量和用户。</p>
<p>百度的担忧是：有啊杯具不断上演；所有细分领域都出现一个淘宝。而且，互联网有赢家通吃的特点，细分行业极有可能出现淘宝。那就末日降临。</p>
<p>于是百度出招：趁着大多数领域都还没出现淘宝，赶紧进入。视频投了奇艺，B2C投了乐酷天，还有N多案子在谈，还未浮出水面，不好意思说。用意：用流量喂大自己投资的网站，把它们做成每个领域的淘宝。百度将来就是一个控股母公司，下面一堆小淘宝。淘宝年收入已经有百度60%了。所以有了“百度10年后收入长40倍”的估算。</p>
<p>将来百度的的组织结构，应该是一个母公司+一大堆控股垂直公司。百度本身的管理一直比较弱，整个公司就是一个大事业部，所以搜索以外，能干好的事情不多。譬如有啊之类的杯具历史一再重演。将来以独立的控股公司形式，避免管理成本的增加，通过现金和流量入股，给予创始人一定的非控股的自主权。</p>
<p>淘宝只是前半段，后半段要讲腾讯。换句话说，淘宝只在网购领域，而百度要在能赚到钱的N个细分领域都放开干了，这些领域出现淘宝的可能性直线降低。那谁来制衡？</p>
<p>不好意思，绕来绕去绕不过腾讯。确实没办法。</p>
<p>中文互联网里，百度是流量的枢纽，腾讯是用户的老家。百度输出流量，腾讯输出用户。百度说：我用流量养大你，跟我走。腾讯说：我把用户分享给你，跟我走！百度给流量是把你呈现在搜索结果第一条，腾讯给用户是把6.13亿QQ用户开放给第三方网站，比如已经实现的豆瓣的书评和5分钟的游戏。就像Facebook干的那样。江湖传说已久，用QQ号和密码就可以直接登录各式论坛。这件事就快着陆了吧？</p>
<p>虽然都能养第三方，但区别甚大。</p>
<p>百度的弱点。第一，一个流量，给了A，就不能给B，具有排他性。第二，今天给A带去一万个流量，其中有一百个变成A的忠实用户留下来，明天这一百个忠实用户继续留在A网站，但未必会通过百度搜索了。这一百个用户的此类需求，被百度长期的转移给了A网站。</p>
<p>腾讯的长处。第一，一个用户，分享给了A，还可以分享给B，不矛盾。Facebook的用户就是所有联盟网站的用户。第二，今天分享给A一万个用户，不管有多少个用户变成了A的忠实用户，这一万个用户都还是QQ的用户。他们从来没离开过。</p>
<p>说白了，流量是耗材，用完就没了。用户是长期价值，越用增在价值越大。</p>
<p>于是有结论：第一，腾讯更能够给更多的网站分享用户，而百度只能给一两家网站带流量。上面提过，百度搜索结果突出显示的第一条对流量的截获率可达到90%。第二，腾讯可以跟放心的给其它网站带去用户，而不是一定要控股这个网站。这才能实现大规模繁殖，真正形成一个联邦。</p>
<p>百度也有优势。流量是有具体需求的流量，比如玩游戏还是看书，随时可变现；而用户是没有具体需求的用户，要挖掘和匹配需求，再到变现，链条比较长。不过腾讯有相应的资源：QQ用户的海量生活数据，以及朋友关系链条，可以像Facebook那样通过人际推荐来实现。</p>
<p>百度还有个弱势。如果百度扶持的垂直网站经营情况不佳，会直接降低用户体验；这会威胁到百度的核心竞争力：作为搜索引擎匹配用户需求与相关网站的能力。</p>
<p>当然，百度生死事小，没人关心；网络生态的枯荣事大，国家GDP和草根就业还得靠这口。</p>
<p>期望看到的结局是：</p>
<p>第一，百度扶持的垂直网站，都走淘宝似的平台路线，别什么事情都自己做，鼓励生态繁荣。比如小游戏，传说4399就要做平台，让用户跟开发者直接见面，再跟开发者分成。也只有这样，4399们才有希望跟百度一拼。同样，百度也只能这样，才能避免饮鸩止渴。</p>
<p>第二，腾讯开放，向第三方网站输出用户。比如，假设7K7K跟百度混了，4399就可以跟腾讯混。两家制衡，整个互联网受益。腾讯刚刚收购康盛，康盛平台上跑着几百万家、中国70%以上的论坛。这后面的变招，太多。假如哪天用QQ号可以直接登录论坛，甚至，你在某论坛上玩过的某款游戏被推荐给你的朋友，别太意外。</p>
<p>（注：本文作者为腾讯网科技中心总监。本文仅代表作者本人观点。作者电子邮箱：james.l.cheng@gmail.com）</p>
]]></content:encoded>
			<wfw:commentRss>http://wenhui.ncu.me/2010/09/07/170.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LightCloud: 从key-value到分布式key-value[转]</title>
		<link>http://wenhui.ncu.me/2010/09/07/168.html</link>
		<comments>http://wenhui.ncu.me/2010/09/07/168.html#comments</comments>
		<pubDate>Tue, 07 Sep 2010 00:42:22 +0000</pubDate>
		<dc:creator>wenhui</dc:creator>
				<category><![CDATA[Web架构]]></category>
		<category><![CDATA[存储集群]]></category>
		<category><![CDATA[lightcloud]]></category>
		<category><![CDATA[nosql]]></category>
		<category><![CDATA[ttserver]]></category>

		<guid isPermaLink="false">http://wenhui.ncu.me/?p=168</guid>
		<description><![CDATA[来源:http://hi.baidu.com/ah__fu/blog/item/73803107015909c77a89473e.html 最近打算实现一些基于key-value的存储群集，查资料的时候发现了LightCloud这个东东。 LightCloud的中文资料都是千篇一律的对其英文介绍首页的翻译： 《LightCloud &#8212; 分布式键-值数据库》：http://www.cnblogs.com/tmfc/archive/2009/03/07/1405669.html 因此我也没必要在此继续扫盲。 还有一篇对其实现原理的翻译： 《LightCloud设计特点》：http://www.cnblogs.com/tmfc/archive/2009/03/08/1406421.html 在此我也谈一些我对LightCloud的肤浅的理解，欢迎拍砖： 1、LightCloud只是一种思想和粘合剂，其核心的存储引擎是ttserver(或曰TokyoTyrant)，另一个替代的存储引擎是Redis。 2、LIghtCloud由两部分组成，一个是tyrant manger(或redis manager)，用于启动（停止、恢复、备份）更多的存储进程(ttserver or redis)； 另一部分是客户端，实现了将数据冗余写入到多个服务器； tyrant manger(或redis manager)和客户端都是python写成的。 svn服务器的位置是：http://opensource.plurk.com/svn/opensource/tyrant_manager，不过看起来好像被河蟹了，访问不到。 3、实现分布式的关键在于客户端： ·每次写入的时候，客户端根据key的hash值，将同一个节点写入三个服务器； ·这三个服务器中的每一个又有一台备份服务器（这样看来，每个key-value存在六份） 有那么多服务器，数据冗余度那么高，想丢都难啊！ 官方网站上应该会讲得更清楚： LightCloud Homepage: http://opensource.plurk.com/LightCloud/ 存储引擎的安装说明：http://opensource.plurk.com/LightCloud/Installation/ (其实就是安装ttserver, redis) tyrant manager： http://opensource.plurk.com/LightCloud/Tyrant_manager/ (服务进程的管理器) python客户端的使用例子：http://opensource.plurk.com/LightCloud/Usage_from_Python/ 设计说明：http://opensource.plurk.com/LightCloud/Design_spec/ （实现思想） 这朵云，果然够轻！]]></description>
			<content:encoded><![CDATA[<p>来源:http://hi.baidu.com/ah__fu/blog/item/73803107015909c77a89473e.html</p>
<p>最近打算实现一些基于key-value的存储群集，查资料的时候发现了LightCloud这个东东。<br />
LightCloud的中文资料都是千篇一律的对其英文介绍首页的翻译：<br />
《LightCloud &#8212; 分布式键-值数据库》：<a href="http://www.cnblogs.com/tmfc/archive/2009/03/07/1405669.html">http://www.cnblogs.com/tmfc/archive/2009/03/07/1405669.html</a><br />
因此我也没必要在此继续扫盲。</p>
<p>还有一篇对其实现原理的翻译：<br />
《LightCloud设计特点》：<a href="http://www.cnblogs.com/tmfc/archive/2009/03/08/1406421.html">http://www.cnblogs.com/tmfc/archive/2009/03/08/1406421.html</a></p>
<p>在此我也谈一些我对LightCloud的肤浅的理解，欢迎拍砖：<br />
1、LightCloud只是一种思想和粘合剂，其核心的存储引擎是ttserver(或曰TokyoTyrant)，另一个替代的存储引擎是Redis。<br />
2、LIghtCloud由两部分组成，一个是tyrant manger(或redis manager)，用于启动（停止、恢复、备份）更多的存储进程(ttserver or redis)；<br />
另一部分是客户端，实现了将数据冗余写入到多个服务器；<br />
tyrant manger(或redis manager)和客户端都是python写成的。<br />
svn服务器的位置是：http://opensource.plurk.com/svn/opensource/tyrant_manager，不过看起来好像被河蟹了，访问不到。<br />
3、实现分布式的关键在于客户端：<br />
·每次写入的时候，客户端根据key的hash值，将同一个节点写入三个服务器；<br />
·这三个服务器中的每一个又有一台备份服务器（这样看来，每个key-value存在六份）<br />
有那么多服务器，数据冗余度那么高，想丢都难啊！</p>
<p>官方网站上应该会讲得更清楚：<br />
LightCloud Homepage: <a href="http://opensource.plurk.com/LightCloud/">http://opensource.plurk.com/LightCloud/</a><br />
存储引擎的安装说明：<a href="http://opensource.plurk.com/LightCloud/Installation/">http://opensource.plurk.com/LightCloud/Installation/</a> (其实就是安装ttserver, redis)<br />
tyrant manager： <a href="http://opensource.plurk.com/LightCloud/Tyrant_manager/">http://opensource.plurk.com/LightCloud/Tyrant_manager/</a> (服务进程的管理器)<br />
python客户端的使用例子：<a href="http://opensource.plurk.com/LightCloud/Usage_from_Python/">http://opensource.plurk.com/LightCloud/Usage_from_Python/</a><br />
设计说明：<a href="http://opensource.plurk.com/LightCloud/Design_spec/">http://opensource.plurk.com/LightCloud/Design_spec/</a> （实现思想）</p>
<p>这朵云，果然够轻！</p>
]]></content:encoded>
			<wfw:commentRss>http://wenhui.ncu.me/2010/09/07/168.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>必看的10部电影，你看过几部[转]</title>
		<link>http://wenhui.ncu.me/2010/09/06/166.html</link>
		<comments>http://wenhui.ncu.me/2010/09/06/166.html#comments</comments>
		<pubDate>Mon, 06 Sep 2010 05:46:12 +0000</pubDate>
		<dc:creator>wenhui</dc:creator>
				<category><![CDATA[工作|生活]]></category>

		<guid isPermaLink="false">http://wenhui.ncu.me/?p=166</guid>
		<description><![CDATA[1、《阿甘正传》课程：执着 每次想起阿甘在美国东西海岸之间的奔跑，心里都会止不住的伤感，还有振奋。 你相信一个智障儿的成功吗？你相信这世上得到最多的人正是那些不计得失的 人吗？ 阿甘不懂得他不能总跟着一个女人帮她打架，也不懂得一个成年人不该总把 妈妈的话挂在嘴边。阿甘什么都不知道，他只知道凭着直觉在路上不停地 跑，并且最终跑到了终点。另外，《阿甘正传》还会教给你一个男人必须 具备的一种素质——困境中的幽默感。 2、《东方不败》课程：才华 男人不应该不看武侠片，如果你只能看一部武侠电影，你会选择什么？我 想应该是《东方不败》。“满堂花醉三千客，一剑霜寒十四州”，剑客的 身姿随着剑在空气中的游走而起舞，翩若惊鸿，宛若游龙。金庸的《笑傲 江湖》讲的是对自由的追求，徐克、程小东、张叔平、李连杰等一干天才 用电影再现了金庸笔下这个瑰丽无比的武侠世界。沧海一声笑的曲子传唱 至今，成为我们一个幻想的凭籍，一个逃避现实的出口。 3、《美国往事》课程：人生 《美国往事》包含了一个男人在这个世界上所能遇到的一切。友情、爱情 、幻想、责任、冲突。它更像是一场让人不愿醒来的梦，当面条躺在床上 ，在温暖的灯光和迷离的电话铃声中回到那些逝去了的岁月，这场梦便开 始了，直到最后，面条终于露出笑容，我们才回到自己的人生，去继续那 些不尽的故事。什么帮派，什么仇杀，原来都不重要，印象中只有一个毛 躁的少年，偷看一个美丽女孩儿跳舞；只有一个负罪的兄弟，每天早早地 上床睡觉；只有一个白发苍苍的老人，面对背叛了的友谊，语调平和，不 动声色。《美国往事》带着你作了一个3小时45分钟的梦。人生如梦，这也 许是惟一的感受。 4、《罗马假日》课程：爱情 也许《罗马假日》有点瞎浪漫的嫌疑，但奥黛丽?赫本的出现使它真的成了 一部童话。她就像是游历人间的天使，美丽得不染纤尘。记者吻过湿淋淋 的公主，然后看着她慢慢地走向自己的官邸。那一刻，你是否会在心里默 默地说“别走”？ 在罗马的宫殿里，两个人站得那样近，也离得那样远。乔只能说：“你的 朋友绝不会让你失望。”而公主也只能这样回答：“罗马，当然是罗马。 ”在人的一生里，即便只有这样一刻心灵的相通，也会少却多少遗憾！ 5、《勇敢的心》课程：勇气 也许英雄并不是无所不能的神明，但英雄一定是无所畏惧的勇士。在你站在 霓虹闪烁的街头，当你面对卑鄙委琐的笑脸，你又想起了那个让你汗颜的华 莱士，这时你收起脸上惯带的笑容，默默地向梅尔?吉布森致敬，从来没有 这么庄重。因为他让我们明白，什么才是真正的英雄。“freedom！”华莱 士临死前的一声人喊，把你的血也点燃了。 6、《辛德勒的名单》课程：责任 所谓责任，就是未必做得成却必须去做的事。对于辛德勒来说，救助落难的 犹太人是作为一个真正的人的责任。而把那段历史搬上银幕，则是斯皮尔 伯格作为一个犹太艺术家的责任。《辛德勒的名单》包含着对受难者的祭 奠，对拯救者的敬意，和对光明一定到来的信念。在影片放映后的一片赞 誉声中，斯皮尔伯格平静地把影片的全部收益捐给了美国的人粹大屠杀纪 念馆。 7、《肖申克的救赎》课程：信念 “有一种鸟儿是永远也关不住的，因为它的每片羽翼上都沾满了自由的光辉 。” 一个人能够在15年痛苦的牢狱生活里，不放弃对自由的向往，这是一种怎 样的精神力量？所以他成功了，成功夺回了自由。《肖申克的救赎》中有 这样一句话：体制化是这样一种东西，一开始你排斥它，后来你习惯它， 直到最后你离不开它。想想看，我们的身体已经有多大一部分被体制化了？ 8、《e．t》课程：童心 如果看《e．t》（外星人）时你流泪了，你不要害怕也不要惭愧，不管你 [...]]]></description>
			<content:encoded><![CDATA[<p>1、《阿甘正传》课程：执着</p>
<p>每次想起阿甘在美国东西海岸之间的奔跑，心里都会止不住的伤感，还有振奋。</p>
<p>你相信一个智障儿的成功吗？你相信这世上得到最多的人正是那些不计得失的<br />
人吗？</p>
<p>阿甘不懂得他不能总跟着一个女人帮她打架，也不懂得一个成年人不该总把<br />
妈妈的话挂在嘴边。阿甘什么都不知道，他只知道凭着直觉在路上不停地<br />
跑，并且最终跑到了终点。另外，《阿甘正传》还会教给你一个男人必须<br />
具备的一种素质——困境中的幽默感。</p>
<p>2、《东方不败》课程：才华</p>
<p>男人不应该不看武侠片，如果你只能看一部武侠电影，你会选择什么？我<br />
想应该是《东方不败》。“满堂花醉三千客，一剑霜寒十四州”，剑客的<br />
身姿随着剑在空气中的游走而起舞，翩若惊鸿，宛若游龙。金庸的《笑傲<br />
江湖》讲的是对自由的追求，徐克、程小东、张叔平、李连杰等一干天才<br />
用电影再现了金庸笔下这个瑰丽无比的武侠世界。沧海一声笑的曲子传唱<br />
至今，成为我们一个幻想的凭籍，一个逃避现实的出口。</p>
<p>3、《美国往事》课程：人生</p>
<p>《美国往事》包含了一个男人在这个世界上所能遇到的一切。友情、爱情<br />
、幻想、责任、冲突。它更像是一场让人不愿醒来的梦，当面条躺在床上<br />
，在温暖的灯光和迷离的电话铃声中回到那些逝去了的岁月，这场梦便开<br />
始了，直到最后，面条终于露出笑容，我们才回到自己的人生，去继续那<br />
些不尽的故事。什么帮派，什么仇杀，原来都不重要，印象中只有一个毛<br />
躁的少年，偷看一个美丽女孩儿跳舞；只有一个负罪的兄弟，每天早早地<br />
上床睡觉；只有一个白发苍苍的老人，面对背叛了的友谊，语调平和，不<br />
动声色。《美国往事》带着你作了一个3小时45分钟的梦。人生如梦，这也<br />
许是惟一的感受。</p>
<p>4、《罗马假日》课程：爱情</p>
<p>也许《罗马假日》有点瞎浪漫的嫌疑，但奥黛丽?赫本的出现使它真的成了<br />
一部童话。她就像是游历人间的天使，美丽得不染纤尘。记者吻过湿淋淋<br />
的公主，然后看着她慢慢地走向自己的官邸。那一刻，你是否会在心里默<br />
默地说“别走”？</p>
<p>在罗马的宫殿里，两个人站得那样近，也离得那样远。乔只能说：“你的<br />
朋友绝不会让你失望。”而公主也只能这样回答：“罗马，当然是罗马。<br />
”在人的一生里，即便只有这样一刻心灵的相通，也会少却多少遗憾！</p>
<p><span id="more-166"></span></p>
<p>5、《勇敢的心》课程：勇气</p>
<p>也许英雄并不是无所不能的神明，但英雄一定是无所畏惧的勇士。在你站在<br />
霓虹闪烁的街头，当你面对卑鄙委琐的笑脸，你又想起了那个让你汗颜的华<br />
莱士，这时你收起脸上惯带的笑容，默默地向梅尔?吉布森致敬，从来没有<br />
这么庄重。因为他让我们明白，什么才是真正的英雄。“freedom！”华莱<br />
士临死前的一声人喊，把你的血也点燃了。</p>
<p>6、《辛德勒的名单》课程：责任</p>
<p>所谓责任，就是未必做得成却必须去做的事。对于辛德勒来说，救助落难的<br />
犹太人是作为一个真正的人的责任。而把那段历史搬上银幕，则是斯皮尔<br />
伯格作为一个犹太艺术家的责任。《辛德勒的名单》包含着对受难者的祭<br />
奠，对拯救者的敬意，和对光明一定到来的信念。在影片放映后的一片赞<br />
誉声中，斯皮尔伯格平静地把影片的全部收益捐给了美国的人粹大屠杀纪<br />
念馆。</p>
<p>7、《肖申克的救赎》课程：信念</p>
<p>“有一种鸟儿是永远也关不住的，因为它的每片羽翼上都沾满了自由的光辉<br />
。”</p>
<p>一个人能够在15年痛苦的牢狱生活里，不放弃对自由的向往，这是一种怎<br />
样的精神力量？所以他成功了，成功夺回了自由。《肖申克的救赎》中有<br />
这样一句话：体制化是这样一种东西，一开始你排斥它，后来你习惯它，<br />
直到最后你离不开它。想想看，我们的身体已经有多大一部分被体制化了？</p>
<p>8、《e．t》课程：童心</p>
<p>如果看《e．t》（外星人）时你流泪了，你不要害怕也不要惭愧，不管你<br />
有多大的年纪。实际上，能够和孩子们一起为e．t的遭遇而悲喜，是一件<br />
多么让人庆幸的事，这代表着我们还有一点童心未曾泯灭，代表着我们有<br />
一些梦想还藏在心底。当长着一双孩子的眼睛的e．t用超能力让孩子们的<br />
自行车飞上夜空，穿过那轮明月的时候，你是否感到了震憾？是否对自己<br />
一些已经习惯了的东西产生了怀疑？</p>
<p>9、《现代启示录》课程：痛苦</p>
<p>战争是一种秩序的破坏，世界上最可悲最痛苦的事莫过于战争，最痛苦的战<br />
争电影莫过于《现代启示录》。《现代启示录》讲的是人性的倒退，秩序的<br />
破坏。但文明的进程却没有人能够阻挡。</p>
<p>10、《第七封印》课程：哲思</p>
<p>瑞典大师伯格曼代表作，在这部1957年完成的黑白影片中，伯格曼明确地提<br />
出了“上帝是否存在”的疑问。我不敢说我看懂了《第七封印》，但如果要<br />
我在临死之前看一部电影，我一定选择《第七封印》。</p>
]]></content:encoded>
			<wfw:commentRss>http://wenhui.ncu.me/2010/09/06/166.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>apache2 中流量控制模块 mod_cband的安装过程</title>
		<link>http://wenhui.ncu.me/2010/09/02/162.html</link>
		<comments>http://wenhui.ncu.me/2010/09/02/162.html#comments</comments>
		<pubDate>Thu, 02 Sep 2010 14:34:10 +0000</pubDate>
		<dc:creator>wenhui</dc:creator>
				<category><![CDATA[Web架构]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[apache模块安装]]></category>
		<category><![CDATA[mod_cband]]></category>
		<category><![CDATA[流量控制]]></category>

		<guid isPermaLink="false">http://wenhui.ncu.me/?p=162</guid>
		<description><![CDATA[原创文章,转载请注明出处:http://wenhui.ncu.me/2010/09/02/162.html PS.这是俺开这个博客的第一篇原创文,请大家求下留情哈! 打算做个图片外链的网站,准备不限制储存空间,但是限制外链流量.就需要针对每个用户的流量进行限制. 在这里我打算采用在apache下面给每个用户一个自己的域名,然后对每个域名开启独立的VirtualHost,然后对每个虚拟主机的流量进行限制. 经调查发现mod_cband很符合我的需要!于是开工 由于我的服务器采用的是debian lenny,所以安装过程还是较为简单的: 首先装apache2,build-essential,apache2-prefork-dev: apt-get install apache2 build-essential apache2-prefork-dev #build-essential中包含了我们所需的编译组件,如gcc/make等,十分方面 #apache2-prefork-dev是在编译apache2模块时需要的软件 然后下载mod_cband源码包,并解压后编译: wget http://cband.linux.pl/download/mod-cband-0.9.7.5.tgz tar zxvf mod-cband-0.9.7.5.tgz cd mod-cband-0.9.7.5 ./configure make make install 你会发现这个过程实在是很爽快啊,一切顺利.. 但是!!你突然发现make install的时候居然报错了(debian下)! 原因是这样的,由于采用apt-get方式安装的apache2的配置文件和编译安装的配置文件是存在一定的差异的,无法通过自带的make install方式来添加mod_cband的配置信息,因此需要我们手动来添加. 那干吧: 先创建两个文件 /etc/apache2/mods-available/cband.conf /etc/apache2/mods-available/cband.load cband.conf文件留空 cband.load文件写入以下内容: LoadModule cband_module /usr/lib/apache2/modules/mod_cband.so 然后将模块的配置文件链接到mods-enabled目录: ln /etc/apache2/mods-available/cband.conf /etc/apache2/mods-enabled/ ln /etc/apache2/mods-available/cband.load /etc/apache2/mods-enabled/ 最后重启apache2: /etc/init.d/apache2 restart 完工!若有疑问,请跟帖!]]></description>
			<content:encoded><![CDATA[<p><span style="color: #ff0000">原创文章,转载请注明出处:http://wenhui.ncu.me/2010/09/02/162.html PS.这是</span><span style="color: #ff0000">俺开这个博客的第一篇原创文,请大家求下留情哈! <img src='http://wenhui.ncu.me/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  </span></p>
<p>打算做个图片外链的网站,准备不限制储存空间,但是限制外链流量.就需要针对每个用户的流量进行限制.<br />
在这里我打算采用在apache下面给每个用户一个自己的域名,然后对每个域名开启独立的VirtualHost,然后对每个虚拟主机的流量进行限制.<br />
经调查发现mod_cband很符合我的需要!于是开工</p>
<p>由于我的服务器采用的是debian lenny,所以安装过程还是较为简单的:</p>
<p><strong>首先装apache2,build-essential,apache2-prefork-dev:</strong></p>
<blockquote><p>apt-get install apache2 build-essential apache2-prefork-dev<br />
#build-essential中包含了我们所需的编译组件,如gcc/make等,十分方面<br />
#apache2-prefork-dev是在编译apache2模块时需要的软件</p></blockquote>
<p><strong>然后下载mod_cband源码包,并解压后编译:</strong></p>
<blockquote><p>wget http://cband.linux.pl/download/mod-cband-0.9.7.5.tgz<br />
tar zxvf mod-cband-0.9.7.5.tgz<br />
cd mod-cband-0.9.7.5<br />
./configure<br />
make<br />
make install</p></blockquote>
<p>你会发现这个过程实在是很爽快啊,一切顺利..<br />
但是!!你突然发现make install的时候<span style="color: #ff0000">居然报错了(debian下)</span>!<br />
原因是这样的,由于采用apt-get方式安装的apache2的配置文件和编译安装的配置文件是存在一定的差异的,无法通过自带的make install方式来添加mod_cband的配置信息,因此需要我们手动来添加.</p>
<p>那干吧:<br />
先创建两个文件</p>
<blockquote><p>/etc/apache2/mods-available/cband.conf<br />
/etc/apache2/mods-available/cband.load</p></blockquote>
<p><span style="color: #ff0000">cband.conf文件留空<br />
cband.load文件写入以下内容:</span></p>
<blockquote><p>LoadModule cband_module /usr/lib/apache2/modules/mod_cband.so</p></blockquote>
<p>然后将模块的配置文件链接到mods-enabled目录:</p>
<blockquote><p>ln /etc/apache2/mods-available/cband.conf /etc/apache2/mods-enabled/<br />
ln /etc/apache2/mods-available/cband.load /etc/apache2/mods-enabled/</p></blockquote>
<p>最后重启apache2:</p>
<blockquote><p>/etc/init.d/apache2 restart</p></blockquote>
<p><span style="color: #ff0000">完工!若有疑问,请跟帖!</span></p>
]]></content:encoded>
			<wfw:commentRss>http://wenhui.ncu.me/2010/09/02/162.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>apache只监听本地localhost的方法</title>
		<link>http://wenhui.ncu.me/2010/09/02/160.html</link>
		<comments>http://wenhui.ncu.me/2010/09/02/160.html#comments</comments>
		<pubDate>Thu, 02 Sep 2010 06:08:59 +0000</pubDate>
		<dc:creator>wenhui</dc:creator>
				<category><![CDATA[Web架构]]></category>
		<category><![CDATA[apache]]></category>

		<guid isPermaLink="false">http://wenhui.ncu.me/?p=160</guid>
		<description><![CDATA[把/etc/apache2/ports.conf 中的 listen 80 改成 listen 127.0.0.1:80 即可]]></description>
			<content:encoded><![CDATA[<p>把/etc/apache2/ports.conf 中的 </p>
<blockquote><p>listen 80</p></blockquote>
<p>改成</p>
<blockquote><p>listen 127.0.0.1:80</p></blockquote>
<p>即可</p>
]]></content:encoded>
			<wfw:commentRss>http://wenhui.ncu.me/2010/09/02/160.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>遭遇显卡门,本子去修了一天回来</title>
		<link>http://wenhui.ncu.me/2010/09/01/157.html</link>
		<comments>http://wenhui.ncu.me/2010/09/01/157.html#comments</comments>
		<pubDate>Wed, 01 Sep 2010 10:43:10 +0000</pubDate>
		<dc:creator>wenhui</dc:creator>
				<category><![CDATA[工作|生活]]></category>

		<guid isPermaLink="false">http://wenhui.ncu.me/?p=157</guid>
		<description><![CDATA[本子acer aspire 5580,nvidia 7300 go的显卡,现在啥游戏也跑不动了,连游戏都不玩,就跑WIN7,结果惨遭显卡门,BGA封装的脱焊了,花了180大洋 没用过A卡的本子,不做比较]]></description>
			<content:encoded><![CDATA[<p>本子acer aspire 5580,nvidia 7300 go的显卡,现在啥游戏也跑不动了,连游戏都不玩,就跑WIN7,结果惨遭显卡门,BGA封装的脱焊了,花了180大洋<br />
没用过A卡的本子,不做比较</p>
]]></content:encoded>
			<wfw:commentRss>http://wenhui.ncu.me/2010/09/01/157.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mod_cband中文手册[转]</title>
		<link>http://wenhui.ncu.me/2010/08/26/149.html</link>
		<comments>http://wenhui.ncu.me/2010/08/26/149.html#comments</comments>
		<pubDate>Thu, 26 Aug 2010 09:24:20 +0000</pubDate>
		<dc:creator>wenhui</dc:creator>
				<category><![CDATA[Web架构]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[apache2]]></category>
		<category><![CDATA[cband手册]]></category>
		<category><![CDATA[mod_cband]]></category>

		<guid isPermaLink="false">http://wenhui.ncu.me/?p=149</guid>
		<description><![CDATA[mod_cband- 一个Apache HTTP Server Version 2下的针对每用户、每虚拟主机和每一目的的带宽控制模块 1. 各种指令中可以使用的单位: * 传输速度限制单位: o kbps, Mbps, Gbps- 每秒传输的比特数, 分别为: 1024,1024*1024 和 1024*1024*1024 bps o kb/s ， MB/s, Gb/s-每秒传输的字节数, 分别为: 1024,1024*1024 和 1024*1024*1024 b/s o 默认单位是kbps * 传输容量限额单位: o K,M,G- 分别为: 1000,1000*1000 和 1000*1000*1000 字节 o Ki,Mi,Gi &#8211; 分别为: 1024,1024*1024 和 1024*1024*1024 字节 o 默认单位是K * 时间限额单位: o S [...]]]></description>
			<content:encoded><![CDATA[<p>mod_cband- 一个Apache HTTP Server Version 2下的针对每用户、每虚拟主机和每一目的的带宽控制模块</p>
<p>1. 各种指令中可以使用的单位:</p>
<p>* 传输速度限制单位:<br />
o kbps, Mbps, Gbps- 每秒传输的比特数, 分别为: 1024,1024*1024 和 1024*1024*1024 bps<br />
o kb/s ， MB/s, Gb/s-每秒传输的字节数, 分别为: 1024,1024*1024 和 1024*1024*1024 b/s<br />
o 默认单位是kbps</p>
<p>* 传输容量限额单位:<br />
o K,M,G- 分别为: 1000,1000*1000 和 1000*1000*1000 字节<br />
o Ki,Mi,Gi &#8211; 分别为: 1024,1024*1024 和 1024*1024*1024 字节<br />
o 默认单位是K</p>
<p>* 时间限额单位:<br />
o S ， M ， H ， D, W- 秒，分钟，小时，天,周; 分别为: 1,60,3600,86400,604800 秒<br />
o 默认单位是秒</p>
<p>2. 指令详解</p>
<p>指令名称：CBandDefaultExceededURL<br />
描 述：指定当mod_cband侦测到发生虚拟主机或用用传输超限发生成，将把所有客户发起的请求重定向到的网址</p>
<p>注 意： 如果你没有指定要跳转的URL，则发送标准 503：Service Unavailable出<br />
错信息<br />
配置位置： Server config<br />
语 法： CBandDefaultExceededURL URL</p>
<p>指令名称：CBandDefaultExceededCode<br />
描 述:当超限发生时，发给用户的http错误码<br />
配置位置：Server config<br />
语 法:CBandDefaultExceededCode HTTP_CODE<br />
例 子:CBandDefaultExceededCode 509</p>
<p>指令名称：CBandScoreFlushPeriod<br />
描 述:为虚拟主机或用户设定一个请求数阀值，在达到阀值时将把请求数写到scoreboard文件中。 使用这个参数将有助于提高mod_cband的性能。<br />
默 认 值：1<br />
配置位置：Server config<br />
语 法：CBandScoreFlushPeriod number_of_requests（请求数）<br />
例 子：CBandScoreFlushPeriod 100<br />
   任意虚拟主机或用户，在达到指定的请求数之后，将被记入scoreboard</p>
<p><span id="more-149"></span><br />
指令名称：CBandSpeed<br />
描 述:为虚拟主机设定最大传输速度<br />
配置位置：<br />
语 法:CBandSpeed kbps rps max_conn<br />
kbps &#8211; 最大的传输速度：[kMG]bps 或都[kMG]B/s<br />
rps &#8211; 每秒的最大请求数<br />
max_conn- 最大并发连接数<br />
例 子:CBandSpeed 1024 10 30<br />
设定最大传速度为： 1024kbps (每秒 1024*1024 位元),<br />
最大每秒 10个请求和 最多30个并发连接<br />
注 意：从 0.9.6.0 版开始支持这个功能</p>
<p>指令名称：CBandRemoteSpeed<br />
描 述：指定任意远程客户端的最大速度<br />
配置位置：<br />
语 法:CBandRemoteSpeed kbps rps max_conn<br />
kpbs &#8211; 最大传输速度： [kMG] bps 或 [kMG] B/s<br />
rps &#8211; 每秒的最大请求数<br />
max_conn- 最大并发连接<br />
例 子：BandRemoteSpeed 20kb/s 33<br />
最大速度为 20kB/s(20*1024 bytes/秒),<br />
每秒最多接受2个远端客户请求和 3个并发连接<br />
注   意:从 0.9.6.1-rc2开始支持这个功能</p>
<p>指令名称：CBandClassRemoteSpeed<br />
描 述:为特定地址段的远端客户指定最大的速度<br />
配置位置：<br />
语 法：CBandClassRemoteSpeed class_name kpbs rps<br />
class_name- 已定义的地址类名<br />
kbps &#8211; 最大传输速度：kbps或kB/s<br />
rps- 每秒的最大请求数<br />
max_conn- 最大并发连接数<br />
例 子:<br />
      CBandClassDst 66.249.64/24<br />
      CBandClassDst 66.249.65/24<br />
      CBandClassDst 66.249.79/24</p>
<p>CBandClassRemoteSpeed googlebot_class 20kb/s 2 3</p>
<p>设定最大的传输速度为： 20kB/s( 20*1024bytes/s),<br />
在指定了地址范围内（googlebot_class）的远端客户中，每秒只接受2个请求和 3并发连接<br />
注   意:从 0.9.6.1-rc 2开始支持这一功能</p>
<p>指令名称：CBandRandomPulse<br />
描 述:r.p.g.开关<br />
   r.p.g.是mod_cband速度限制的一种方式。它指定了连接检测采样的方式。打开此功能，将持续滚动采样。如果带宽和CPU占用不稳定的时候，关掉此功能。<br />
配置位置：Global<br />
语 法:CBandRandomPulse ON/OFF</p>
<p>指令名称：CBandLimit<br />
描 述:限制虚拟主机的流量<br />
配置位置：<br />
语 法：CBandLimit limit<br />
   流量限制单位，可以用K、M、G、Ki、Mi、Gi<br />
例 子：CBandLimit 10M<br />
      限制流量为10M</p>
<p>      CBandLimit 10Mi<br />
      限制流量为10Mi：10*1024*1024bytes</p>
<p>指令名称：CBandClassLimit<br />
描 述:定义虚拟主机目标类别的流量<br />
配置位置：<br />
语 法：CBandClassLimit class_name limit<br />
      class_name- 已定义的类别名称<br />
      limit &#8211; 流量限制单位，可以用K、M、G、Ki、Mi、Gi</p>
<p>指令名称：CBandExceededURL<br />
描 述: 指定当虚拟主机超出带宽或流量时，跳转的URL。提示：如果没有配置此项，将发送标准的503。<br />
配置位置：<br />
语 法：CBandExceededURL 网址</p>
<p>指令名称：CBandExceededSpeed<br />
描 述: 定义当虚拟主机流量或带宽超出限制时，mod_cband将调节的最大速度<br />
配置位置：<br />
语 法：CBandExceededSpeed kbps rps max_conn<br />
      kbps &#8211; 最大传送速度，kbps或kB/s<br />
      rps- 每秒最大请求数<br />
      max_conn- 最大并发连接数<br />
注 意: 从 0.9.6.0 开始支持</p>
<p>指令名称：CBandScoreboard<br />
描 述:指定虚拟主机的scoreboard文件<br />
配置位置：<br />
语 法：CBandScoreboard path<br />
注 意: 路径对于Apache用户必须可写</p>
<p>指令名称：CBandPeriod<br />
描 述:定义虚拟主机使用情况重置的周期<br />
配置位置：<br />
语 法：CBandPeriod period<br />
      可用单位：S（秒）、M（分）、H（小时）、D（天）、W（周）<br />
例 子：CBandPeriod 1W //每周重置<br />
      CBandPeriod 14D //每14天重置<br />
      CBandPeriod 60M //每小时重置</p>
<p>指令名称：CBandPeriodSlice<br />
描 述:定义CBandPeriod周期内，分部分计算的时间长度<br />
默 认 值：slice_len=limit<br />
配置位置：<br />
语 法：CBandPeriodSlice slice_length<br />
例 子：CBandLimit 100G<br />
      CBandPeriod 4W<br />
      CBandPeriodSlice 1W<br />
      一个周期将被分成4个小部分（4周/1周=4）。每部分限制流量100G/4=25G。一周之后slice限制将是50G，两周后将是75G&#8230;</p>
<p>指令名称：<br />
描 述:定义一个新的 cband 用户<br />
配置位置：Server config<br />
语 法：</p>
<p>指令名称：CBandUserSpeed<br />
描 述:定义cband用户的最大带宽<br />
配置位置：<br />
语 法：CBandUserSpeed 每秒千个位元组 rps max_conn<br />
      kbps &#8211; 最大速度:kbps或者kb/s<br />
      rps- 每秒请求数<br />
      max_conn- 最大连接数<br />
例 子:CBandUserSpeed 100kb/s 105<br />
   定义用户的最大熟读为100kB/s，每秒最多10个请求，最大连接数为5<br />
注 意:从 0.9.6.0 开始支持</p>
<p>指令名称：CBandUserLimit<br />
描 述:指定cband user的流量<br />
配置位置：<br />
语 法：CBandUserLimit limit<br />
      limit &#8211; 流量可用单位K、M、G、Ki、Mi、Gi<br />
例 子:CBandUserLimit 10M<br />
      指定用户流量为10M</p>
<p>      CBandUserLimit 10Mi<br />
      指定用户流量为10Mi</p>
<p>指令名称：CBandUserClassLimit<br />
描 述: 指定cband user类的流量<br />
配置位置：<br />
语 法：CBandUserClassLimit class_name limit<br />
      class_name- 类名称<br />
      limit &#8211; 流量大小单位，可用K、M、G、Ki、Mi、Gi</p>
<p>指令名称：CBandUserExceededURL<br />
描 述: 指定当cband user超出限制时，跳转的URL<br />
注 意: 如果没有定义此项，将发送标准的503<br />
配置位置：<br />
语 法：CBandUserExceededURL URL</p>
<p>指令名称：CBandUserExceededSpeed<br />
描 述: 定义当cband user超出限制时，mod_cband将调节的速度<br />
注 意:只有当CBandUserExceededURL没有设定时，此项才生效<br />
配置位置：<br />
语 法：CBandUserExceededSpeed kbps rps max_conn<br />
      kbps &#8211; 最大速度：kpbs或kb/s<br />
      rps- 每秒请求数<br />
      max_conn- 最大并发数<br />
注 意:从 0.9.6.0 开始支持</p>
<p>指令名称：CBandUserScoreboard<br />
描 述: 定义用户的scoreboard文件<br />
配置位置：<br />
语 法：CBandUserScoreboard path<br />
注 意:目录必须允许apache用户写入</p>
<p>指令名称：CBandUserPeriod<br />
描 述: 定义cband user计算周期<br />
配置位置：<br />
语 法：CBandUserPeriod period<br />
      period &#8211; 可用单位S(秒)、M(分)、H(小时)、D(天)、W(周)<br />
例 子: CBandUserPeriod 1W<br />
      CBandUserPeriod 14D<br />
      CBandUserPeriod 60M</p>
<p>指令名称：CBandUserPeriodSlice<br />
描 述:定义CBandUserPeriod的分割<br />
默 认 值：slice_len=limit<br />
配置位置：<br />
语 法：CBandUserPeriodSlice slice_length<br />
例 子：CBandUserLimit 100G<br />
      CBandUserPeriod 4W<br />
      CBandUserPeriodSlice 1W<br />
      CBandUserPeriod将被分割成4个部分（4W/1W=4）。每部分限制流量100G/4=25G。一周之后部分限制将为50G，两周后为75G&#8230;</p>
<p>3. 状态管理配置实例<br />
如果要观察实时的流量、使用情况、用户、scoreboard，添加以下内容到配置文件:</p>
<p>SetHandler cband-status</p>
<p>SetHandler cband-status-me</p>
<p>这样，你就可以通过以下地址来访问</p>
<p>http://server_name/cband-status</p>
<p>http://server_name/cband-status-me</p>
<p>在0.9.5-rc1之后的版本中，可以通过XML格式来观察</p>
<p>http://server_name/cband-status?xml</p>
<p>http://server_name/cband-status-me?xml</p>
<p>4. 流量带宽配置实例</p>
<p>DocumentRoot /var/www/chinafu.com/<br />
ServerName chinafu.com<br />
CustomLog /var/log/apache2/chinafu.com.access combined<br />
ErrorLog /var/log/apache2/chinafu.com.access.error<br />
RewriteEngine On<br />
RewriteOptions inherit</p>
<p># 本虚拟机最大带宽为：1024kbps<br />
# 本虚拟机每秒最多能接受10个请求<br />
# 本虚拟机最多30个并发连接<br />
CBandSpeed 1024 10 30</p>
<p># 每个远程客户端最大带宽10kB/s，每秒最多3个请求，最大连接为2个<br />
CBandRemoteSpeed 10kb/s 3 2</p>
<p># 对于googlebot_class类的远程用户，最大带宽为20kB/s，每秒最多2个请求，最大连接为3个<br />
CBandClassRemoteSpeed googlebot_class 20kb/s 2 3</p>
<p>5. 流量限制配置实例<br />
   按虚拟主机进行流量配置<br />
   下面，你可以订制虚拟主机的流量限制、URL和scoreboard文件</p>
<p># 定义超出流量之后跳转的URLCBandDefaultExceededURL<br />
CBandDefaultExceededURL http://chinafu.com/bandwidth_exceeded.html</p>
<p>DocumentRoot /var/www/chinafu.com/<br />
ServerName chinafu.com<br />
CustomLog /var/log/apache2/chinafu.com.access combined<br />
ErrorLog /var/log/apache2/chinafu.com.access.error<br />
RewriteEngine On<br />
RewriteOptions inherit</p>
<p># 流量限制为100M<br />
CBandLimit 100000</p>
<p># 当超过流量时，跳转URL到http://chinafu.com/bandwidth_exceeded.html<br />
CBandExceededURL http://chinafu.com/bandwidth_exceeded.html</p>
<p># 虚拟主机的scoreboard文件<br />
CBandScoreboard /var/run/apache2/chinafu.com.scoreboard</p>
<p># scoreboard清空周期（30分钟），仅在0.9.5-rc2之后版本支持<br />
CBandPeriod 30M</p>
<p>按用户指定流量（仅限0.9.1之后版本）<br />
在0.9.1版之后，你可以指定用户限制然后将虚拟主机分配给用户</p>
<p># 定义用户‘dembol’</p>
<p># 限制用户&#8217;dembol&#8217;的流量为200MB<br />
CBandUserLimit 200000</p>
<p># 如果用户超出限制，跳转到URLhttp://chinafu.com/bandwidth_exceeded.html<br />
CBandUserExceededURL http://chinafu.com/bandwidth_exceeded.html</p>
<p># 用户的scoreboard文件<br />
CBandUserScoreboard /var/run/apache2/dembol.scoreboard</p>
<p># 清空scoreboard的周期<br />
# (only in &gt;=0.9.5-rc2)<br />
CBandUserPeriod 5W</p>
<p># 将虚拟主机‘chinafu.com’分配给‘dembol’用户</p>
<p>ServerName chinafu.com<br />
# 指定虚拟主机的所有者<br />
CBandUser dembol</p>
<p># 将虚拟主机‘aga.org’分配给‘dembol’用户</p>
<p>ServerName aga.org<br />
# 指定虚拟主机的所有者<br />
CBandUser dembol</p>
<p>按用户和虚拟主机混合方式指定流量和带宽（仅限于0.9.1之后版本）<br />
在0.9.1版之后，你可以混合用户和虚拟主机方式来指定流量和带宽</p>
<p># 定义用户 “dembol”</p>
<p># “dembol”用户流量限制为200MB<br />
CBandUserLimit 200000</p>
<p>#如果超出限制，跳转到URLhttp://abc.org/bandwidth_exceeded.html<br />
CBandUserExceededURL http://abc.org/bandwidth_exceeded.html</p>
<p># 用户的scoreboard文件<br />
CBandUserScoreboard /var/run/apache2/dembol.scoreboard</p>
<p># 清空scoreboard的周期（4天）<br />
# (only in &gt;=0.9.5-rc2)<br />
CBandUserPeriod 4D</p>
<p># 将虚拟主机“xyz.org”分配给用户“dembol”</p>
<p>ServerName xyz.org<br />
# 指定虚拟主机的所有者<br />
CBandUser dembol</p>
<p># 限制此虚拟主机流量为100MB<br />
CBandLimit 100000</p>
<p># 如果超出限制，跳转到URLhttp://abc.org/bandwidth_exceeded.html<br />
CBandExceededURL http://abc.org/bandwidth_exceeded.html</p>
<p># 虚拟主机的scoreboard文件<br />
CBandScoreboard /var/run/apache2/xyz.org.scoreboard</p>
<p># a period of time after which the scoreboard will be cleared (50 minutes)<br />
#清空scoreboard的周期（50分钟）<br />
CBandPeriod 50M</p>
<p># 将虚拟主机“aga.org”分配给用户“dembol”</p>
<p>ServerName aga.org<br />
#指定虚拟主机的所有者<br />
CBandUser dembol</p>
<p>按远程目标指定流量和带宽（仅限0.9.5-rc1之后版本）<br />
在0.9.5-rc1之后，你可以通过来定义远程目标类来指定类的流量和带宽。同时也可以定义CBandClassLimit和CBandUserClassLimit来定义不同的类<br />
# define &#8220;class_1&#8243;</p>
<p>CBandClassDst 217.172.231.67<br />
CBandClassDst 127/8<br />
CBandClassDst 192.168.0.0/24<br />
CBandClassDst 10.0.0.20</p>
<p># 定义 &#8216;class_2&#8242;</p>
<p>CBandClassDst 192.168.100.100<br />
CBandClassDst 153.19/16</p>
<p>CBandUserLimit 1000000<br />
CBandUserExceededURL http:// edns.pl/bandwidth_exceeded.html<br />
CBandUserScoreboard/home/ dembol/write/user.dembol.scoreboard</p>
<p># &#8220;class_2&#8243;限制流量500MB<br />
CBandUserClassLimit class_2 500000</p>
<p>&#8230;<br />
CBandUser dembol</p>
<p># &#8220;class_1&#8243;限制流量1GB<br />
CBandClassLimit class_1 1000000</p>
<p># 定义scoreboard的清空时间为120秒（仅限0.9.5-rc2以上版本<br />
CBandPeriod 120S</p>
<p>完整配置实例：</p>
<p># 可以通过http://yourdomain/cband-status查看流量<br />
SetHandler cband-status</p>
<p># 超出限制，跳转到google<br />
CBandDefaultExceededURL http://www.google.com<br />
# 定义类别<br />
CBandClassDst 217.172.231.67<br />
CBandClassDst 127/8<br />
CBandClassDst 192.168.0.0/24<br />
CBandClassDst 10.0.0.20<br />
CBandClassDst 192.168.100.100<br />
CBandClassDst 153.19/16<br />
CBandClassDst 10.13/16</p>
<p># 定义用户<br />
CBandUserLimit 100000<br />
CBandUserExceededURL http://server_name.com/bandwidth_exceeded.html<br />
CBandUserScoreboard /home/dembol/write/user.dembol.scoreboard<br />
CBandUserPeriod 10W</p>
<p>CBandUserLimit 1000000<br />
CBandUserExceededURL http://server_name.com/bandwidth_exceeded.html<br />
CBandUserScoreboard /home/dembol/write/user.dembolek.scoreboard<br />
CBandUserClassLimit class_1 50000<br />
CBandUserPeriod 20H<br />
CBandUserLimit 10000000<br />
CBandUserExceededURL http://www.google.com<br />
CBandUserScoreboard /home/dembol/write/user.dembol.nasa.pl.scoreboard<br />
CBandUserClassLimit class_2 3000<br />
CBandUserClassLimit class_3 10000<br />
CBandUserPeriod 2H</p>
<p>NameVirtualHost *:80<br />
DocumentRoot /home/dembol/public_html/dembol.nasa.pl/<br />
ServerName dembol.nasa.pl<br />
ServerAlias *.dembol.nasa.pl<br />
Setenv VLOG /home/dembol/public_html/logs/dembol.nasa.pl.access<br />
CustomLog /home/dembol/public_html/logs/dembol.nasa.pl.access combined<br />
ErrorLog /home/dembol/public_html/logs/dembol.nasa.pl.error</p>
<p># 设定虚拟主机的cband<br />
CBandLimit 100000000<br />
CBandUser dembol.nasa.pl<br />
CBandExceededURL http://edns.pl/bandwidth_exceeded.html<br />
CBandScoreboard /home/dembol/write/dembol.nasa.pl.scoreboard<br />
CBandClassLimit class_1 10000000<br />
CBandPeriod 200S<br />
DocumentRoot /home/dembol/public_html/dembol.nasa.pl/<br />
ServerName dembol.eu.orgServerAlias *.dembol.eu.org<br />
Setenv VLOG /home/dembol/public_html/logs/dembol.eu.org.access<br />
CustomLog /home/dembol/public_html/logs/dembol.eu.org.access combined<br />
ErrorLog /home/dembol/public_html/logs/dembol.eu.org.error<br />
# 设定虚拟主机的cband</p>
<p>CBandUser dembolek<br />
CBandLimit 10000<br />
CBandExceededURL http://server_name.com/bandwidth_exceeded.html<br />
CBandScoreboard /home/dembolek/write/dembol.eu.org.scoreboard<br />
CBandClassLimit class_1 700000<br />
CBandClassLimit class_2 100000<br />
CBandClassLimit class_3 500000<br />
CBandPeriod 5D</p>
<p>DocumentRoot /home/dembol/public_html/dembol.nasa.pl/cvs_alias<br />
ServerName cvs.cband.linux.pl:80<br />
Setenv VLOG /home/dembol/public_html/logs/cvs.cband.linux.pl.access<br />
CustomLog /home/dembol/public_html/logs/cvs.cband.linux.pl.access combined<br />
ErrorLog /home/dembol/public_html/logs/cvs.cband.linux.pl.error<br />
# 设定虚拟主机的cband</p>
<p>CBandUser dembol<br />
CBandLimit 100000<br />
CBandExceededURL http://server_name.com/bandwidth_exceeded.html<br />
CBandScoreboard /home/dembol/write/dembol.eu.org.scoreboard<br />
CBandClassLimit class_3 20000<br />
CBandPeriod 1W</p>
<p>Performance Tests<br />
性能测试<br />
mod_cband without CBandScoreFlushPeriod directive<br />
mod_cband 不清空score MPM prefork MPM worker MPM perchild MPM event MPM leader<br />
with mod_cband 316.63 rps 346.89 rps ~ 297.36 rps ~<br />
without mod_cband 447.76 rps 406.91 rps ~ 425.13 rps ~</p>
<p>mod_cband with CBandScoreFlushPeriod 100 directive<br />
mod_cband 设定清空score周期为100 MPM prefork MPM worker MPM perchild MPM event MPM leader<br />
with mod_cband 405.17 rps 365.22 rps ~ 414.60 rps ~<br />
without mod_cband 447.76 rps 406.91 rps ~ 425.13 rps ~</p>
<p>Http server: Apache 2.2, default http.conf, compiled with:<br />
Apache2.2版，默认的http.conf配置，按以下方式编译./configure &#8211;with-mpm=$1 \<br />
   &#8211;enable-layout=Slackware \<br />
   &#8211;enable-v4-mapped \<br />
   &#8211;enable-cache \<br />
   &#8211;enable-disk-cache &#8211;enable-mem-cache \<br />
   &#8211;enable-deflate \<br />
   &#8211;enable-ssl \<br />
   &#8211;enable-mods-shared=all \<br />
   &#8211;with-uid=apache &#8211;with-gid=apache \<br />
   &#8211;with-gdbm &#8211;with-berkeley-db</p>
<p>Linux kernel: 2.6.14.2-grsec<br />
Linux 内核版本：2.6.14.2-grsec<br />
Machine: 2xPentium II 333MHz, 320MB RAM<br />
机器配置：双PII 333MHz，320MB内存<br />
Network: 100Mbps ethernet<br />
网络：100Mbps以太网</p>
<p>Test command:<br />
测试使用命令httperf &#8211;server 192.168.0.25 &#8211;port 8 &#8211;num-conns 1000 &#8211;uri http://www.traktor.pl &#8211;hog</p>
]]></content:encoded>
			<wfw:commentRss>http://wenhui.ncu.me/2010/08/26/149.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>nginx的二级域名匹配</title>
		<link>http://wenhui.ncu.me/2010/08/26/147.html</link>
		<comments>http://wenhui.ncu.me/2010/08/26/147.html#comments</comments>
		<pubDate>Thu, 26 Aug 2010 02:19:52 +0000</pubDate>
		<dc:creator>wenhui</dc:creator>
				<category><![CDATA[Web架构]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[二级域名]]></category>

		<guid isPermaLink="false">http://wenhui.ncu.me/?p=147</guid>
		<description><![CDATA[整了一个域名,涉及到将二级域名为数字的转到特定的目录下,这里用nginx的匹配$host来实现 下面是一个简单的配置,请看 #绑定域名 server_name *.abcd.com; #匹配你的二级域名 if ( $host ~* (.*)\.yourdomain\.com) { set $domain $1; } #定义目录 root html/abc/$domain/; location / { root html/abcd/$domain; index index.html index.php; }]]></description>
			<content:encoded><![CDATA[<p>整了一个域名,涉及到将二级域名为数字的转到特定的目录下,这里用nginx的匹配$host来实现<br />
下面是一个简单的配置,请看</p>
<pre>
#绑定域名
server_name *.abcd.com;
#匹配你的二级域名
if ( $host ~* (.*)\.yourdomain\.com)
{
   set $domain $1;
}
#定义目录
root  html/abc/$domain/;
location /
{
    root  html/abcd/$domain;
    index index.html index.php;
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://wenhui.ncu.me/2010/08/26/147.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>让nginx的expires和防盗链都有效,应对nginx图片防盗链没用的情况!</title>
		<link>http://wenhui.ncu.me/2010/08/25/143.html</link>
		<comments>http://wenhui.ncu.me/2010/08/25/143.html#comments</comments>
		<pubDate>Wed, 25 Aug 2010 14:15:11 +0000</pubDate>
		<dc:creator>wenhui</dc:creator>
				<category><![CDATA[Web架构]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[expires]]></category>
		<category><![CDATA[valid_referers]]></category>
		<category><![CDATA[图片防盗链]]></category>

		<guid isPermaLink="false">http://wenhui.ncu.me/?p=143</guid>
		<description><![CDATA[注:在Nginx下,expires和防盗链(valid_referers)一起用的时候,会出现防盗链失效的情况!其详细状况如下: expires有效，防盗链失效 location ~* ^.+\.(jpg&#124;jpeg&#124;gif&#124;png&#124;css&#124;js&#124;swf)$ { access_log off; root /opt/htdocs/career; expires 1h; #break; } location ~* ^.+\.(jpg&#124;jpeg&#124;gif&#124;png&#124;swf&#124;rar&#124;zip)$ { valid_referers none blocked *.c1gstudio.com; if ($invalid_referer) { rewrite ^/ http://leech.c1gstudio.com/leech.gif; return 412; } } 只有js和css的expire有效，防盗链有效 location ~* ^.+\.(jpg&#124;jpeg&#124;gif&#124;png&#124;swf&#124;rar&#124;zip)$ { valid_referers none blocked *.c1gstudio.com; if ($invalid_referer) { rewrite ^/ http://leech.c1gstudio.com/leech.gif; return 412; } } location ~* ^.+\.(jpg&#124;jpeg&#124;gif&#124;png&#124;css&#124;js&#124;swf)$ { [...]]]></description>
			<content:encoded><![CDATA[<p>注:<span style="color: #ff0000">在Nginx下,expires和防盗链(valid_referers)一起用的时候,会出现防盗链失效的情况</span>!其详细状况如下:</p>
<p>expires有效，防盗链失效</p>
<blockquote><p>location ~* ^.+\.(jpg|jpeg|gif|png|css|js|swf)$ {<br />
access_log off;<br />
root /opt/htdocs/career;<br />
expires 1h;<br />
#break;<br />
}<br />
location ~* ^.+\.(jpg|jpeg|gif|png|swf|rar|zip)$ {<br />
valid_referers none blocked *.c1gstudio.com;<br />
if ($invalid_referer) {<br />
rewrite ^/ http://leech.c1gstudio.com/leech.gif;<br />
return 412;<br />
}<br />
}</p></blockquote>
<p>只有js和css的expire有效，防盗链有效</p>
<blockquote><p>location ~* ^.+\.(jpg|jpeg|gif|png|swf|rar|zip)$ {<br />
valid_referers none blocked *.c1gstudio.com;<br />
if ($invalid_referer) {<br />
rewrite ^/ http://leech.c1gstudio.com/leech.gif;<br />
return 412;<br />
}<br />
}<br />
location ~* ^.+\.(jpg|jpeg|gif|png|css|js|swf)$ {<br />
access_log off;<br />
root /opt/htdocs/career;<br />
expires 1h;<br />
#break;<br />
}</p></blockquote>
<p>让expire和防盗链都有效</p>
<blockquote><p>location ~* ^.+\.(jpg|jpeg|gif|png|swf|rar|zip|css|js)$ {<br />
valid_referers none blocked *.c1gstudio.com;<br />
if ($invalid_referer) {<br />
rewrite ^/ http://leech.c1gstudio.com/leech.gif;<br />
return 412;<br />
}<br />
access_log off;<br />
root /opt/htdocs/career;<br />
expires 1h;<br />
break;<br />
}</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://wenhui.ncu.me/2010/08/25/143.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP获取搜索引擎关键字的算法</title>
		<link>http://wenhui.ncu.me/2010/08/25/128.html</link>
		<comments>http://wenhui.ncu.me/2010/08/25/128.html#comments</comments>
		<pubDate>Wed, 25 Aug 2010 01:20:32 +0000</pubDate>
		<dc:creator>wenhui</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[脚本]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[搜索引擎关键字]]></category>

		<guid isPermaLink="false">http://wenhui.ncu.me/?p=128</guid>
		<description><![CDATA[下面的代码是PHP的 &#60;?php $q='http://www.baidu.com/s?wd=%E9%80%9A%E8%BF%87%E7%9C%8B%E6%89%8B%E7%9B%B8%E4%B8%8E%E5%A5%B3%E7%94%9F%E8%BF%9B%E8%A1%8C%E8%BA%AB%E4%BD%93%E6%8E%A5%E8%A7%A6&#38;ie=utf-8 '; //$_SERVER['HTTP_REFERER'] //根据url取得utf-8关键词 function searchword($form){ global $url;//本站域名 if(empty($form)&#124;&#124;strpos($form,$url)===false){return null;} list($enginer,$keys)=explode('?',trim($form)); $is_utf8=false; parse_str($keys,$query); if(strpos($enginer,'baidu')!=false){ $Keyword= $query["wd"]?$query["wd"]:$query["word"]; $is_utf8=($query["ie"]=='utf-8')?true:false; }elseif(strpos($enginer,'google')!=false){ $Keyword= $query["q"]; $is_utf8=($query["ie"]=='gb2312'&#124;&#124;$query["ie"]=='gb')?false:true; }elseif(strpos($enginer,'soso')!=false){ $Keyword= $query["w"]; $is_utf8=false; }elseif(strpos($enginer,'sogou')!=false){ $Keyword= $query["query"]; $is_utf8=false; }elseif(strpos($enginer,'youdao')!=false){ $Keyword= $query["q"]; $is_utf8=(strtolower($query["ue"])=='gb2312')?false:true; }elseif(strpos($enginer,'bing')!=false){ $Keyword= $query["q"]; $is_utf8=true; }else{ $Keyword=null; } return urldecode($is_utf8?$Keyword:iconv("gb2312","utf-8",$Keyword)); } echo searchword($q); ?&#62;]]></description>
			<content:encoded><![CDATA[<p>下面的代码是PHP的</p>
<pre>&lt;?php
$q='http://www.baidu.com/s?wd=%E9%80%9A%E8%BF%87%E7%9C%8B%E6%89%8B%E7%9B%B8%E4%B8%8E%E5%A5%B3%E7%94%9F%E8%BF%9B%E8%A1%8C%E8%BA%AB%E4%BD%93%E6%8E%A5%E8%A7%A6&amp;ie=utf-8 ';
//$_SERVER['HTTP_REFERER']
//根据url取得utf-8关键词
function searchword($form){
    global $url;//本站域名
    if(empty($form)||strpos($form,$url)===false){return null;}
    list($enginer,$keys)=explode('?',trim($form));
    $is_utf8=false;
    parse_str($keys,$query);
    if(strpos($enginer,'baidu')!=false){
        $Keyword= $query["wd"]?$query["wd"]:$query["word"];
        $is_utf8=($query["ie"]=='utf-8')?true:false;
    }elseif(strpos($enginer,'google')!=false){
        $Keyword= $query["q"];
        $is_utf8=($query["ie"]=='gb2312'||$query["ie"]=='gb')?false:true;
    }elseif(strpos($enginer,'soso')!=false){
        $Keyword= $query["w"];
        $is_utf8=false;
    }elseif(strpos($enginer,'sogou')!=false){
        $Keyword= $query["query"];
        $is_utf8=false;
    }elseif(strpos($enginer,'youdao')!=false){
        $Keyword= $query["q"];
        $is_utf8=(strtolower($query["ue"])=='gb2312')?false:true;
    }elseif(strpos($enginer,'bing')!=false){
        $Keyword= $query["q"];
        $is_utf8=true;
    }else{
         $Keyword=null;
    }
    return urldecode($is_utf8?$Keyword:iconv("gb2312","utf-8",$Keyword));
}
echo searchword($q);
?&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://wenhui.ncu.me/2010/08/25/128.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/


Served from: ncu.me @ 2010-09-08 01:56:09 -->