註:伺服器環境為CentOS
一、簡介
Tengine是由淘寶網發起的Web伺服器項目。它在Nginx的基礎上,針對大訪問量網站的需求,添加了很多進階功能和特性。Tengine的效能和穩定性已經在大型的網站如淘寶網,天貓商城等得到了很好的檢驗。它的最終目標是打造一個高效、穩定、安全、易用的Web平台。
從2011年12月開始,Tengine成為一個開源項目,Tengine團隊在積極地開發和維護著它。Tengine團隊的核心成員來自於淘寶、搜狗等互連網企業。Tengine是社區合作的成果,我們歡迎大家參與其中,貢獻自己的力量。
二、特性
繼承Nginx-1.2.9的所有特性,100%相容Nginx的配置;
動態模組載入(DSO)支援。加入一個模組不再需要重新編譯整個Tengine;
輸入過濾器機制支援。通過使用這種機制Web Application Firewall的編寫更為方便;
動態指令碼語言Lua支援。擴充功能非常高效簡單;
支援管道(pipe)和syslog(本地和遠端)形式的日誌以及日誌抽樣;
組合多個CSS、JavaScript檔案的訪問請求變成一個請求;
更加強大的負載平衡能力,包括一致性hash模組、會話保持模組,還可以對後端的伺服器進行主動健全狀態檢查,根據伺服器狀態自動上線下線;
自動根據CPU數目設定進程個數和綁定CPU親緣性;
監控系統的負載和資源佔用從而對系統進行保護;
顯示對營運人員更友好的出錯資訊,便於定位出錯機器;
更強大的防攻擊(訪問速度限制)模組;
更方便的命令列參數,如列出編譯的模組列表、支援的指令等;
可以根據訪問檔案類型設定到期時間;
三、安裝
1.yum安裝
yum安裝比較簡單,配置好源以後直接yum install即可。
①配置第三方yum源(CentOS的預設源裡是沒有nginx軟體包的)
複製代碼 代碼如下:
yum install wget #安裝下載工具wget
wget http://www.atomicorp.com/installers/atomic #下載atomic yum源
sh ./atomic #安裝
yum check-update #更新yum軟體包
②安裝配置
複製代碼 代碼如下:
yum install nginx #安裝nginx,根據提示,輸入Y安裝即可成功安裝
service nginx start #啟動
chkconfig nginx on #設為開機啟動
/etc/init.d/nginx restart #重啟
rm -rf /usr/share/nginx/html/* #刪除ngin預設測試頁
2.源碼編譯安裝
源碼安裝稍微複雜一點,有一些相關的依賴包需要單獨編譯
源碼安裝既可以選擇原版的nginx也可以使用淘寶修改過的Tengine,這裡推薦使用Tengin,Tengine完全相容nginx並且加入了許多的新特性,適合日益複雜的業務擴充。
Tengine官網:http://tengine.taobao.org/
①先安裝pcre,用於支援nginx的偽靜態
複製代碼 代碼如下:
# cd /usr/local/src
# wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.21.tar.gz
# tar zxvf pcre-8.21.tar.gz
# mkdir /usr/local/pcre #建立安裝目錄
# cd pcre-8.21
# ./configure --prefix=/usr/local/pcre #配置
# make
# make install
②安裝Tengine
複製代碼 代碼如下:
# cd /usr/local/src
# wget http://tengine.taobao.org/download/tengine-1.4.2.tar.gz
# tar zxvf tengine-1.4.2.tar.gz
# cd tengine
# ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-pcre=/usr/local/src/pcre-8.21
# make
# make install
# /usr/local/nginx/sbin/nginx #啟動nginx
# chown nobody.nobody -R /usr/local/nginx/html
# chmod 700 -R /usr/local/nginx/html
注意:--with-pcre=/usr/local/src/pcre-8.21指向的是源碼包解壓的路徑,而不是安裝的路徑,否則會報錯。
③設定Tengine開機啟動
複製代碼 代碼如下:
# vi /etc/rc.d/init.d/nginx #編輯開機檔案添加下面內容
#!/bin/bash
# Tengine Startup script# processname: nginx
# pidfile: /var/run/nginx.pid
# config: /usr/local/nginx/conf/nginx.conf
nginxd=/usr/local/nginx/sbin/nginx
nginx_config=/usr/local/nginx/conf/nginx.conf
nginx_pid=/usr/local/nginx/logs/nginx.pid
RETVAL=0
prog="nginx"
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0
[ -x $nginxd ] || exit 0
# Start nginx daemons functions.
start() {
if [ -e $nginx_pid ];then
echo "tengine already running...."
exit 1
fi
echo -n $"Starting $prog: "
daemon $nginxd -c ${nginx_config}
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch /var/lock/subsys/nginx
return $RETVAL
}
# Stop nginx daemons functions.
stop() {
echo -n $"Stopping $prog: "
killproc $nginxd
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f /var/lock/subsys/nginx /usr/local/nginx/logs/nginx.pid
}
reload() {
echo -n $"Reloading $prog: "
#kill -HUP `cat ${nginx_pid}`
killproc $nginxd -HUP
RETVAL=$?
echo
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
reload)
reload
;;
restart)
stop
start
;;
status)
status $prog
RETVAL=$?
;;
*)
echo $"Usage: $prog {start|stop|restart|reload|status|help}"
exit 1
esac
exit $RETVAL
儲存退出
複製代碼 代碼如下:
# chmod 775 /etc/rc.d/init.d/nginx #賦予檔案執行許可權
# chkconfig nginx on #設定開機啟動
# /etc/rc.d/init.d/nginx restart
至此,nginx安裝結束。這裡再說一下為什麼要使用淘寶的Tengine:
1.繼承Nginx的所有特性,100%相容Nginx的配置;
2.動態模組載入(DSO)支援。加入一個模組不再需要重新編譯整個Tengine;
3.輸入過濾器機制支援。通過使用這種機制Web Application Firewall的編寫更為方便;
4.動態指令碼語言Lua支援。擴充功能非常高效簡單;
5.支援管道(pipe)和syslog(本地和遠端)形式的日誌以及日誌抽樣;
6.組合多個CSS、JavaScript檔案的訪問請求變成一個請求;
四、成功頁面
安裝並啟動Tengine後,瀏覽器輸入ip地址,看到下圖則說明安裝成功。
五、注意事項
1. –with-openssl=/usr/local/src/openssl-1.0.1e 這步可能會出錯,注意:–with-openssl=/usr/local/src/openssl-1.0.1e 指向的是源碼包解壓的路徑,而不是安裝的路徑,否則會報錯,下載,解壓源碼包,如下:
複製代碼 代碼如下:
cd /usr/local/src
wget http://www.openssl.org/source/openssl-1.0.1e.tar.gz
tar zxvf openssl-1.0.1e
然後再重新執行 tengine 安裝即可。
2. –with-pcre=/usr/local/src/pcre-8.33 指向的是源碼包解壓的路徑,而不是安裝的路徑,否則會報錯。