1.安裝前準備:html
1.1下載http://tengine.taobao.org/download_cn.htmllinux
1.2 依賴 gcc openssl-devel pcre-devel zlib-devel
nginx
1.3 建立用戶:useradd -r -M nginxgit
2.編譯安裝,默認路徑/usr/local/nginxgithub
$ ./configure $ make # make install
3.服務腳本vim
注意權限755,編譯時默認路徑有改動要更改服務腳本centos
centos 7:vim /lib/systemd/system/nginx.service 建立文件bash
[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
ide
#!/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/nginxmemcached
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; |
官方文檔:http://tengine.taobao.org/document_cn/dso_cn.html
nginx編譯模塊文檔:https://www.linuxhub.org/?p=3205