tengine簡介:
Tengine所基於開發的Nginx的意思是Engine-X,Tengine在淘寶開發,所以我們把Engine-X中的X替換成Taobao。Tengine即Taobao-Engine,再進一步簡寫,就是Tengine。它可以念成tee-engine,或者ten-gine。它在Nginx的基礎上,針對大訪問量網站的需求,新增了很多高階功能和特性。它的目的是打造一個高效、安全的Web平臺。Tengine的效能和穩定性已經在大型的網站如淘寶網,天貓商城等得到了很好的檢驗。它的最終目標是打造一個高效、穩定、安全、易用的Web平臺。從2011年12月開始,Tengine成為一個開源專案。它由Tengine團隊開發和維護。Tengine團隊的核心成員來自於淘寶、搜狗等網際網路企業。
tengine下載:
http://tengine.taobao.org/download.html。這裡我們下載最新版的Tengine-2.3.2.tar.gz。
tengine安裝:
首先需要安裝一個虛擬機器,然後安裝一個linux系統,這裡就不介紹怎麼安裝虛擬機器和linux了,相信大家既然在關注nginx,想必這些環境都已經準備好了,我使用的是VMware15和Centos7。
第一步:
由於nginx是C和C++開發的,所以需要進行編譯,所以需要相關的元件,命令如下:yum install gcc openssl-devel pcre-devel zlib-devel。如果沒有安裝yum,請自行百度解決,這裡就不介紹了。
第二步:
將我們下載的Tengine-2.3.2.tar.gz放到/usr/local下,並解壓,命令如下tar zxvf tengine-2.3.2.tar.gz.。然後進入tengine-2.3.2,進行編譯安裝,命令如下:./ configure --prefix=/安裝路徑,如果不用prefix指定路徑,直接執行./configure,則安裝到預設的路徑/usr/local/nginx下,然後執行
make && make install進行安裝。
第三步:
此時,tengine就安裝完畢了。我們來啟動nginx,如果是預設的路徑,則進入/usr/local/nginx/sbin目錄下,執行./niginx即可啟動,niginx預設的埠是80,在瀏覽器中直接輸入當前伺服器的地址,如果出現如下介面,則說明安裝成功。
第四步:
雖然我們已經成功啟動了nginx,但是我們想停止nginx確很麻煩。我們需要通過ps -ef|grep nginx找到nginx的進行,然後通過kill -9殺死程式。所以我們需要做一個啟動,停止指令碼。指令碼如下:
#!/bin/sh # # nginx - this script starts and stops the nginx daemon # # chkconfig: - 85 15 # description: Nginx is an HTTP(S) server, HTTP(S) reverse \ # proxy and IMAP/POP3 proxy server # processname: nginx # config: /etc/nginx/nginx.conf # config: /etc/sysconfig/nginx # pidfile: /var/run/nginx.pid # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network # Check that networking is up. [ "$NETWORKING" = "no" ] && exit 0 nginx="/usr/local/nginx/sbin/nginx" prog=$(basename $nginx) NGINX_CONF_FILE="/usr/nginx/nginx/conf/nginx.conf" [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx lockfile=/var/lock/subsys/nginx make_dirs() { # make required directories user=`nginx -V 2>&1 | grep "configure arguments:" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -` options=`$nginx -V 2>&1 | grep 'configure arguments:'` for opt in $options; do if [ `echo $opt | grep '.*-temp-path'` ]; then value=`echo $opt | cut -d "=" -f 2` if [ ! -d "$value" ]; then # echo "creating" $value mkdir -p $value && chown -R $user $value fi fi done } start() { [ -x $nginx ] || exit 5 [ -f $NGINX_CONF_FILE ] || exit 6 make_dirs echo -n $"Starting $prog: " daemon $nginx -c $NGINX_CONF_FILE retval=$? echo [ $retval -eq 0 ] && touch $lockfile return $retval } stop() { echo -n $"Stopping $prog: " killproc $prog -QUIT retval=$? echo [ $retval -eq 0 ] && rm -f $lockfile return $retval } restart() { configtest || return $? stop sleep 1 start } reload() { configtest || return $? echo -n $"Reloading $prog: " killproc $nginx -HUP RETVAL=$? echo } force_reload() { restart } configtest() { $nginx -t -c $NGINX_CONF_FILE } rh_status() { status $prog } rh_status_q() { rh_status >/dev/null 2>&1 } case "$1" in start) rh_status_q && exit 0 $1 ;; stop) rh_status_q || exit 0 $1 ;; restart|configtest) $1 ;; reload) rh_status_q || exit 7 $1 ;; force-reload) force_reload ;; status) rh_status ;; condrestart|try-restart) rh_status_q || exit 0 ;; *) echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}" exit 2 esac
需要注意的是,如果不是預設的安裝目錄,請修改如下位置的路徑為你的安裝路徑:
將此指令碼放到/etc/init.d/nginx中,nginx需要自己建立,然後要進行賦權,不然沒得執行許可權,命令如下:chmod 777 nginx。
此時就可以通過systemctl start nginx啟動,systemctl stop nginx停止等等,還可以檢視狀態,重啟等等。
踩坑記錄:
安裝完成之後,通過systemctl start nginx,如果一直卡著不動,不要慌,過一會會出現如下日誌:
執行systemctl status nginx.service,如果出現以下錯誤:
將/usr/local/nginx/conf/nginx.conf檔案中的pid一行取消註釋,改成上圖中對於的pid的地址:
此時需要殺掉程式,雖然啟動卡著,但是nginx其實是啟動成功的,只是沒有獲取到pid,會導致後續停止,檢視狀態等操作無法進行。
殺掉程式後,再啟動就OK了。