淘寶Web服務(wù)器Tengine
我們很高興的宣布由淘寶網(wǎng)核心系統(tǒng)部開發(fā)的Tengine服務(wù)器終于正式開源了。淘寶網(wǎng)是亞洲最大的電子商務(wù) 網(wǎng)站,Alexa全球排名第12位。每天訪問淘寶網(wǎng)的PV超過了幾十億。大壓力的訪問,對淘寶網(wǎng)的Web服務(wù)器提出了嚴苛的要求。
經(jīng)過一系列的對比,我們 最終選擇了Nginx作為我們的Web服務(wù)器,因為它性能高,又非常節(jié)省資源(CPU和內(nèi)存),并且有足夠的靈活性。
一開始我們使用Nginx還僅僅用它來處理靜態(tài)文件、PHP等,接著我們又在Nginx上開發(fā)了幾十個各種用途的模塊。隨著對Nginx的 越來越了解,我們發(fā)現(xiàn)它本身已經(jīng)不能夠完全滿足我們的需求了,所以我們就開始對Nginx核心進行定制和開發(fā)??紤]到我們開發(fā)的功能中的一些對其它的互聯(lián) 網(wǎng)用戶也可能有用處,所以我們就想到了把這些公用的功能開源出來。淘寶網(wǎng)是開源軟件的用戶和受益者,我們也想成為開源軟件的貢獻者。這就是我們決定開源 Tengine的原因。
從這個版本開始,Tengine基于了最新的Nginx-1.0.14穩(wěn)定版本。本次Tengine發(fā)布的亮點是一個全新的user_agent模塊( https://github.com/taobao/nginx-http-user-agent),它比Nginx的標準browser模塊更靈活且性能更高,特別是當有大量瀏覽器、爬蟲需要判斷的時候。其他的更新還包括:
* 增加log_escape指令可以用來設(shè)置是否允許訪問日志的編碼;
* 修復(fù)limit_req模塊的一個bug(感謝 liseen.wan);
* 修復(fù)subrequest的一個bug;
Tengine是由淘寶網(wǎng)發(fā)起的Web服務(wù)器項目。它在Nginx的基礎(chǔ)上,針對大訪問量網(wǎng)站的需求,添加了很多高級功能和特性。Tengine的 性能和穩(wěn)定性已經(jīng)在大型的網(wǎng)站如淘寶網(wǎng),天貓商城等得到了很好的檢驗。它的最終目標是打造一個高效、穩(wěn)定、安全、易用的Web平臺。
從2011年12月開始,Tengine成為一個開源項目。
以下沿引項目主頁上的特性介紹:
繼承Nginx-1.0.14的所有特性,100%兼容Nginx的配置;
輸入過濾器機制支持。通過使用這種機制Web應(yīng)用防火墻的編寫更為方便;
組合多個CSS、JavaScript文件的訪問請求變成一個請求;
支持管道(pipe)和syslog(本地和遠端)形式的日志以及日志抽樣;
自動根據(jù)CPU數(shù)目設(shè)置進程個數(shù)和綁定CPU親緣性;
監(jiān)控系統(tǒng)的負載和資源占用從而對系統(tǒng)進行保護;
顯示對運維人員更友好的出錯信息,便于定位出錯機器;
更強大的防攻擊(訪問速度限制)模塊;
backtrace模塊,程序崩潰的時候可以顯示出錯的調(diào)用棧;
更方便的命令行參數(shù),如列出編譯的模塊列表、支持的指令等;
可以根據(jù)訪問文件類型設(shè)置過期時間;
基本上,Tengine可以被看作一個更好的Nginx,或者是Nginx的超集。
在這里,我們想向Nginx團隊致謝,尤其感謝Nginx的作者Igor Sysoev的偉大工作。我們也很樂意并在接下來的時間里將我們的工作成果捐獻給Nginx官方。
坦率的講,現(xiàn)在Tengine的特性還不夠多,但這是我們將我們在Nginx上的工作推向開源的第一步。我們已經(jīng)圍繞Tengine組建了 一個團隊,而且內(nèi)部還有一個很長的計劃列表。Tengine開源不是項目開發(fā)的結(jié)束,而是開發(fā)的開始。相信接下來大家會看到我們在Tengine上的更多 工作進展。


































