編譯安裝Tengine

1.安裝前準備:

1.1下載http://tengine.taobao.org/download_cn.html

1.2 依賴 gcc openssl-devel pcre-devel zlib-devel

1.3 創建用戶:useradd -r  -M nginx

2.編譯安裝,默認路徑/usr/local/nginx

    $ ./configure
    $ make
    # make install

3.服務腳本

注意權限755,編譯時默認路徑有改動要更改服務腳本

centos 7:vim /lib/systemd/system/nginx.service 創建文件

[Unit]
Description=The nginx HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target

centos 6:vim /etc/init.d/nginx

#!/bin/bash
#
# 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
TENGINE_HOME="/usr/local/nginx/"
nginx=$TENGINE_HOME"sbin/nginx"
prog=$(basename $nginx)
NGINX_CONF_FILE=$TENGINE_HOME"conf/nginx.conf"
[ -f /etc/sysconfig/nginx ] && /etc/sysconfig/nginx
lockfile=/usr/local/nginx/lock/nginx.lock
start() {
    [ -x $nginx ] || exit 5
    [ -f $NGINX_CONF_FILE ] || exit 6
    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
    killall -9 nginx
}
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

ln -sv /usr/local/nginx/sbin/nginx /usr/local/bin/nginx

4.模塊

Teninx與nginx最大區別就是可以動態增加擴展模塊。

nginx -m 查看所有已經加載的模塊,static說明已經安裝的,shared說明是動態安裝的

tengine實現動態加載模塊,不需重新編譯,就可以實現安裝新的模塊。動態模塊功能會被默認安裝。而nginx不支持模塊動態加載,需要編譯重啓;

Tengine動態加載lua模塊示例:

#下載模塊源碼
cd /data/down
git clone git://github.com/openresty/lua-nginx-module

#編譯模塊
cd /usr/local/nginx/sbin
./dso_tool --add-module=/data/down/lua-nginx-module

#查看編譯好的模塊
ls /usr/local/nginx/modules/ | grep http_lua
ngx_http_lua_module.so

#加載模塊
nginx.conf
dso {
   load ngx_http_lua_module.so; 
}

#重新加載nginx服務
/etc/init.d/nginx reload
worker_processes  1;

dso {
   load ngx_http_lua_module.so;
   load ngx_http_memcached_module.so;
}

events {
   worker_connections  1024;
}


官方文檔:http://tengine.taobao.org/document_cn/dso_cn.html

nginx編譯模塊文檔:https://www.linuxhub.org/?p=3205


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章