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; |
官方文档:http://tengine.taobao.org/document_cn/dso_cn.html
nginx编译模块文档:https://www.linuxhub.org/?p=3205