tengine下載和安裝

負重前行的小牛發表於2020-12-12

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了。

 

相關文章