我们很高兴的宣布由淘宝网核心系统部开发的Tengine服务器终于正式开源了。
淘宝网是亚洲最大的电子商务网站,Alexa全球排名第12位。每天访问淘宝网的PV超过了几十亿。大压力的访问,对淘宝网的">Web服务器提出了严苛的要求。经过一系列的对比,我们最终选择了Nginx作为我们的Web服务器,因为它性能高,又非常节省资源(CPU和内存),并且有足够的灵活性。
淘宝网运行的操作系统信息
一开始我们使用Nginx还仅仅用它来处理静态文件、PHP等,接着我们又在Nginx上开发了几十个各种用途的模块。随着对Nginx的越来越了解,我们发现它本身已经不能够完全满足我们的需求了,所以我们就开始对Nginx核心进行定制和开发。考虑到我们开发的功能中的一些对其它的互联网用户也可能有用处,所以我们就想到了把这些公用的功能开源出来。淘宝网是开源软件的用户和受益者,我们也想成为开源软件的贡献者。这就是我们决定开源Tengine的原因。
Tengine基于最新的Nginx稳定版(Nginx-1.0.10),在它的基础上开发了一些功能和做了一些bug修复,比如:
组合多个CSS、JavaScript文件的访问请求变成一个请求;
支持管道和syslog形式的日志和抽样;
自动根据CPU数目设置亲缘性;
监控系统的负载和资源占用从而对系统进行保护;
显示对运维人员更友好的出错信息,便于定位出错机器;
更强大的访问速度限制模块;
backtrace模块,程序崩溃的时候可以显示出错的调用栈;
根据文件类型设置过期时间;
...
基本上,Tengine可以被看作一个更好的Nginx,或者是Nginx的超集。可以在这里下载:
http://tengine.taobao.org/download/tengine.tar.gz
Tengine-1.2.3.tar.gz
MD5: 54e6ec3303653e3a6321988a0780316d Tengine-1.2.2.tar.gz
MD5: 90d738b0e9b9dd5ed7b716d826ef463b Tengine-1.2.1.tar.gz
MD5: 2e1a47815e72d166b371ab9d880512dc Tengine-1.2.0.tar.gz
MD5: e5575f78f52c1aac3d8690b4e8b1469c
在这里,我们想向Nginx团队致谢,尤其感谢Nginx的作者Igor Sysoev的伟大工作。我们也很乐意并在接下来的时间里将我们的工作成果捐献给Nginx官方。
坦率的讲,现在Tengine的特性还不够多,但这是我们将我们在Nginx上的工作推向开源的第一步。我们已经围绕Tengine组建了一个团队,而且内部还有一个很长的计划列表。Tengine开源不是项目开发的结束,而是开发的开始。相信接下来大家会看到我们在Tengine上的更多工作进展。
问:Tengine的名字来由是什么?
答:因为Tengine所基于开发的Nginx的意思是Engine-X。Tengine在淘宝开发,所以我们把Engine-X中的X替换成Taobao。Tengine即Taobao-Engine,再进一步简写,就是Tengine。它可以念成tee-engine,或者ten-gine。
问:Tengine采用什么开源协议?
答:和Nginx本身一样的类BSD协议。我们充分尊重Nginx的作者Igor Sysoev和他的工作成果,也严格遵守Nginx的协议。
问:Tengine为什么不直接提交到Nginx官方,而是重新取了一个名字?
答:正如Tengine的开源公告中所说的那样,我们会在接下来的时间尽最大的努力提交我们的patch给Nginx官方。但考虑到Nginx以往的发展历史(patch比较难被接受),而且其中我们开发的“syslog/pipe支持”等功能就是Nginx作者明确拒绝纳入的功能。但是我们确实需要一个开源渠道。无论我们的patch会不会被接受,我们把自己在Nginx开发上的工作开源出来的决心不会变。
问:Tengine的开源看起来稍微有点仓促,为什么?
答:Tengine本来计划的开源时间是2012年,届时的功能和特色会比现在丰富得多。在今年12月初就提前开源的一个原因是我们要在Velocity大会上介绍淘宝在Nginx的定制和开发上的一些工作。为了表示我们做技术分享的诚意,就把其中的一些成果提前开源了。
问:Tengine的文档为什么这么少?
答:原因同第4个,因为Tengine项目开源日期的提前。我们会在接下来的时间里完善现有功能的文档。