Yapache-Yahoo! Apache 的秘密

作为世界上 NO.1 的 Web 站点,Yahoo!Web 服务器定有独到之处. 这也应该是很多 Web 技术人员关心的一个问题。
前一段时间, Yahoo! 架构软件组的技术经理 Michael J. Radwin 在 OSCON 2006 上作了一个题目为 Hacking Apache HTTP Server at Yahoo! 的报告,透露了很多关于 Yahoo! Apache 的技术信息。
Yahoo! Apache = Yapache , 这是雅虎内部使用的名字吧。发音是(why·apache)(注:根据下面的留言,读音应为[ya`pache])。 YApache 是基于 Apache 1.3 进行 hack 的,目前在向 Apache 2.2 迁移(Prefork Multi-Processing Module ?)。 Michael 介绍说构建 YApache 的原因有三个:
1) 安全性;
2) 节省带宽;
3) NETSCAPE GUIDE BY YAHOO–这是 97 年的时候 Yahoo! 与 Netscape 联合推出的 一个互联网信息与导航服务,需要用到富媒体内容,当时的 Apache 对这样的内容支持较弱,所以雅虎不得不动手改造 Apache (要知道97 年的时候 Netscape 就好比现在的 Google 啊)。据说这才是主要原因。
Apache 1.3 的功能对雅虎来说已经够用 (在 98 年对 yapache 添加了 gzip 的支持),所以这个版本一致用到现在。YApache 的一个倾向性的原则是用进程而不用线程,相对比较保守,不过这样选择的原因也是很明显的:进程更加稳定,线程对与程序员来说,更容易引入新的问题。
接下来 PPT 描述了一些关于 LOG 格式的内容,继续看下去,我感兴趣的是关于配置参数 StartServers / MaxSpareServers / MinSpareServers / MaxClients 的问题。很多 Web 技术人员往往要在这个地方反复推敲。YApache 一般只设置 MaxClients,这个值一般小于 100, 对于 99% 的站点是足够用了。尽量让系统(Yahoo! BSD) Kernel 来处理 Buffer, 在这个地方关于 几个 kernel 参数的设置很有讲究。
关于SSL 的部分我不太感兴趣,倒是最后的 ysar (Yahoo! sar) 看起来是一个有趣的工具.
这样的定制对于 Yahoo! 这样需要大量 Web 服务器的站点来说(现在平均每天接近 40 亿 的 PV),得到的收益无疑是巨大的。对于规模相对较小的 Web 2.0 站点,类似 LightTPD 这样的轻量级 Web 服务器更为适合(比如豆瓣):

$ curl -I www.douban.com
HTTP/1.1 200 OK
Connection: close
Status: 200 OK
Content-Length: 13213
Content-Type: text/html; charset=utf-8
Set-Cookie: dbcl2="MPmAySb0OYE::"; path=/; domain=douban.com; \
expires=Thu, 01-Jan-2009 00:00:00 GMT
Date: Fri, 22 Sep 2006 12:34:16 GMT
Expires: -1
Server: lighttpd/1.4.11

(那些盯着豆瓣页面看的模仿者,很少有人留心豆瓣的运维技术吧)
在线查看这个PPT: Hacking Apache HTTP Server at Yahoo! (PDF Version) (其实这个文档和 05 年的内容基本上是一致的)。

继续阅读

cURL Tips

记录一下使用 cURL 时的一个小技巧.
比如上次举的这个备份 del.icio.us 书签的例子中,因为该页面需要验证, –user YourUserName:YourPassword ,需要提供用户名字和密码,我上次说:

如果想定期备份,又怕密码出现在命令行上,可以考虑把这个命令写到一个脚本里,能提高一点点安全。

其实通过 -K 参数就可以很好的避免这个问题,创建一个文本文件 .pass ,内容如下

--user YourUserName:YourPassword

(把具体的用户名字替换一下) 然后通过:

curl  https://api.del.icio.us/v1/posts/all  -K  .pass

cURL 的功能足够丰富,官方站点的文档也足够全,如何在实际工作中方便、灵活的用到这些功能,需要慢慢磨练。
cURL 也是我 Windows 上安装的命令行小工具之一.
EOF

Opera 90.1 版本? Opera 90.2 版本?

难道软件也要时不时的搞点绯闻才好? Opera 上次升级的时候看到一个 90.1 的版本:
Opera Version 90.1
这次 9.02 升级,这个问题还是存在:
Opera Version 90.2
这么低级的错误倒让人怀疑是不是 Opera 有意为之. 只可惜 Opera 不是大明星,如果是 Google 什么软件的版本这样搞一下,估计全世界都会知道了。

此文作者:, 位于 Review 分类 标签: , on .
转载须以超链接形式标明文章原始出处和作者信息及版权声明.

Spam, 这个所有 Blogger 都头疼的问题

今天雅虎中国开始了”搜虫大行动“, 其中一个目的就是为了对付 SPAM,说起 SPAM ,估计很多 Blogger 都恨的牙根痒。
最近我把Blog 的验证字插件 Scode 关掉了。一个原因是为了方便留言的读者,另一个原因是为了减少压力。反正用 Scode 的时候 Spam 留言是狂多的,对 Spam 机器人来说, Scode 验证字没什么用,直接找到留言的脚本发过来信息就成了,这些垃圾留言在后台一样需要手工清理。”死猪不怕开水烫”。
没有想到,我把 Scode 关掉之后,Spam 留言反而少了很多,怪哉。不过有了新变化:HTTP HERD REFER SPAM 多了起来。这一类的 SPAM 的目的就是为了通过 AWstats 的统计结果页面的 Refer 来提高自己页面的 PageRank, 我的 AWstats 统计入口登陆是需要验证的,坚决不让他们得逞。
中外 SPAM 的异同
总体来讲,国内的 SPAM 基本上还属于手工作业的阶段(虽然偶尔也会看到 SPAM 机器人). 而国外的 SPAM 机器人就灵活许多了,很多 SPAM 能够识别我改名后的 mt-comment.cgi 脚本,虽然不需要啥高深的技术含量,但起码能看到人家在改进。国外的 SPAM 机器人试图宣传的站点基本上都是与”赌博,色情”沾边。URL 都是巨长的那种。留言内容的形式风格都很相似,第一句话都是称赞你的 Blog 的,”Great Site”, “Good Blog”, 套套近乎,接下来就是大堆的垃圾信息了.
不知道这些专门开发 SPAM 的家伙都来自哪个国家,但肯定来自中国的非常少,所以说该给咱们的 “chongqed” 摘帽了吧? 现在中国天才们都集中精神研究流氓软件呢,那有时间搞 SPAM 啊。
现在使用的抵挡 Spam 的办法罗列一下:
*) 使用 Movable Type 的 插件 nofollow ;
*) 重命名 mt-comment.cgi 脚本 ;
*) 修改 AWstats 的脚本 awstats.pl, 把 HEAD 过滤条件($field[$pos_method] eq ‘HEAD’)去掉.
Trackback 的 SPAM 不用担心了–我已经关闭了 Trackback 的 Ping.
现在比较烦的另一个问题是经常有人在我的站点上找一些”dvbbs7.mdb”,”s8qq.txt”,”s8dvbbs6.mdb” 或者类似的文件,估计是用一些”黑客”工具在扫描有漏洞的论坛程序,我通过 URL rewrite 制定了几个规则。谁有其他什么好办法么?
EOF