淘寶Web服務(wù)器Tengine在CentOS下的安裝教程
注:服務(wù)器環(huán)境為CentOS
一、簡(jiǎn)介
Tengine是由淘寶網(wǎng)發(fā)起的Web服務(wù)器項(xiàng)目。它在Nginx的基礎(chǔ)上,針對(duì)大訪問量網(wǎng)站的需求,添加了很多高級(jí)功能和特性。Tengine的性能和穩(wěn)定性已經(jīng)在大型的網(wǎng)站如淘寶網(wǎng),天貓商城等得到了很好的檢驗(yàn)。它的最終目標(biāo)是打造一個(gè)高效、穩(wěn)定、安全、易用的Web平臺(tái)。
從2011年12月開始,Tengine成為一個(gè)開源項(xiàng)目,Tengine團(tuán)隊(duì)在積極地開發(fā)和維護(hù)著它。Tengine團(tuán)隊(duì)的核心成員來自于淘寶、搜狗等互聯(lián)網(wǎng)企業(yè)。Tengine是社區(qū)合作的成果,我們歡迎大家參與其中,貢獻(xiàn)自己的力量。
二、特性
繼承Nginx-1.2.9的所有特性,100%兼容Nginx的配置;
動(dòng)態(tài)模塊加載(DSO)支持。加入一個(gè)模塊不再需要重新編譯整個(gè)Tengine;
輸入過濾器機(jī)制支持。通過使用這種機(jī)制Web應(yīng)用防火墻的編寫更為方便;
動(dòng)態(tài)腳本語言Lua支持。擴(kuò)展功能非常高效簡(jiǎn)單;
支持管道(pipe)和syslog(本地和遠(yuǎn)端)形式的日志以及日志抽樣;
組合多個(gè)CSS、JavaScript文件的訪問請(qǐng)求變成一個(gè)請(qǐng)求;
更加強(qiáng)大的負(fù)載均衡能力,包括一致性hash模塊、會(huì)話保持模塊,還可以對(duì)后端的服務(wù)器進(jìn)行主動(dòng)健康檢查,根據(jù)服務(wù)器狀態(tài)自動(dòng)上線下線;
自動(dòng)根據(jù)CPU數(shù)目設(shè)置進(jìn)程個(gè)數(shù)和綁定CPU親緣性;
監(jiān)控系統(tǒng)的負(fù)載和資源占用從而對(duì)系統(tǒng)進(jìn)行保護(hù);
顯示對(duì)運(yùn)維人員更友好的出錯(cuò)信息,便于定位出錯(cuò)機(jī)器;
更強(qiáng)大的防攻擊(訪問速度限制)模塊;
更方便的命令行參數(shù),如列出編譯的模塊列表、支持的指令等;
可以根據(jù)訪問文件類型設(shè)置過期時(shí)間;
三、安裝
1.yum安裝
yum安裝比較簡(jiǎn)單,配置好源以后直接yum install即可。
①配置第三方y(tǒng)um源(CentOS的默認(rèn)源里是沒有nginx軟件包的)
wget http://www.atomicorp.com/installers/atomic #下載atomic yum源
sh ./atomic #安裝
yum check-update #更新yum軟件包
②安裝配置
service nginx start #啟動(dòng)
chkconfig nginx on #設(shè)為開機(jī)啟動(dòng)
/etc/init.d/nginx restart #重啟
rm -rf /usr/share/nginx/html/* #刪除ngin默認(rèn)測(cè)試頁
2.源碼編譯安裝
源碼安裝稍微復(fù)雜一點(diǎn),有一些相關(guān)的依賴包需要單獨(dú)編譯
源碼安裝既可以選擇原版的nginx也可以使用淘寶修改過的Tengine,這里推薦使用Tengin,Tengine完全兼容nginx并且加入了許多的新特性,適合日益復(fù)雜的業(yè)務(wù)擴(kuò)展。
Tengine官網(wǎng):http://tengine.taobao.org/
①先安裝pcre,用于支持nginx的偽靜態(tài)
# 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 #創(chuàng)建安裝目錄
# 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 #啟動(dòng)nginx
# chown nobody.nobody -R /usr/local/nginx/html
# chmod 700 -R /usr/local/nginx/html
注意:--with-pcre=/usr/local/src/pcre-8.21指向的是源碼包解壓的路徑,而不是安裝的路徑,否則會(huì)報(bào)錯(cuò)。
③設(shè)置Tengine開機(jī)啟動(dòng)
#!/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 #賦予文件執(zhí)行權(quán)限
# chkconfig nginx on #設(shè)置開機(jī)啟動(dòng)
# /etc/rc.d/init.d/nginx restart
至此,nginx安裝結(jié)束。這里再說一下為什么要使用淘寶的Tengine:
1.繼承Nginx的所有特性,100%兼容Nginx的配置;
2.動(dòng)態(tài)模塊加載(DSO)支持。加入一個(gè)模塊不再需要重新編譯整個(gè)Tengine;
3.輸入過濾器機(jī)制支持。通過使用這種機(jī)制Web應(yīng)用防火墻的編寫更為方便;
4.動(dòng)態(tài)腳本語言Lua支持。擴(kuò)展功能非常高效簡(jiǎn)單;
5.支持管道(pipe)和syslog(本地和遠(yuǎn)端)形式的日志以及日志抽樣;
6.組合多個(gè)CSS、JavaScript文件的訪問請(qǐng)求變成一個(gè)請(qǐng)求;
四、成功頁面
安裝并啟動(dòng)Tengine后,瀏覽器輸入ip地址,看到下圖則說明安裝成功。
五、注意事項(xiàng)
1. –with-openssl=/usr/local/src/openssl-1.0.1e 這步可能會(huì)出錯(cuò),注意:–with-openssl=/usr/local/src/openssl-1.0.1e 指向的是源碼包解壓的路徑,而不是安裝的路徑,否則會(huì)報(bào)錯(cuò),下載,解壓源碼包,如下:
cd /usr/local/src
wget http://www.openssl.org/source/openssl-1.0.1e.tar.gz
tar zxvf openssl-1.0.1e
然后再重新執(zhí)行 tengine 安裝即可。
2. –with-pcre=/usr/local/src/pcre-8.33 指向的是源碼包解壓的路徑,而不是安裝的路徑,否則會(huì)報(bào)錯(cuò)。
相關(guān)文章
解決nginx+uwsgi部署Django的所有問題(小結(jié))
本篇文章主要介紹了解決nginx+uwsgi部署Django的所有問題(小結(jié)),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-04-04在Nginx中增加對(duì)OAuth協(xié)議的支持的教程
這篇文章主要介紹了在Nginx中增加對(duì)OAuth協(xié)議的支持的教程,OAuth協(xié)議如今廣泛用于社交網(wǎng)絡(luò)的API中,需要的朋友可以參考下2015-06-06centos 7.0 使用Nginx部署flask應(yīng)用教程
這篇文章主要介紹了centos 7.0 使用Nginx部署flask應(yīng)用教程,需要的朋友可以參考下2017-12-12關(guān)閉nginx空主機(jī)頭 防止nginx空主機(jī)頭及惡意域名指向
nginx的默認(rèn)配置中的虛擬主機(jī)允許用戶通過IP訪問,或者通過未設(shè)置的域名訪問,比如有人惡意把他自己的域名指向了你的ip,需要的朋友可以參考下2016-09-09Prometheus監(jiān)控實(shí)戰(zhàn)篇Nginx、Hbase操作詳解
這篇文章主要介紹了Prometheus監(jiān)控實(shí)戰(zhàn)篇Nginx、Hbase,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-02-02nginx反向代理踩坑實(shí)戰(zhàn)記錄(容器方式)
Nginx是一個(gè)高性能的HTTP和反向代理web服務(wù)器,同時(shí)也提供了IMAP/POP3/SMTP服務(wù),下面這篇文章主要給大家介紹了關(guān)于nginx反向代理踩坑(容器方式)的相關(guān)資料,需要的朋友可以參考下2022-04-04