Tengine安装配置

经常听到淘宝自研服务器 Tengine 之前有听过openResty 也在正式环境中使用
今天就在虚拟机中 安装部署下
1.下载tengine 习惯性 cd opt/sofware wget http://tengine.taobao.org/download/tengine-2.3.2.tar.gz
2.组件 需要一些依赖支持

        yum install gcc gcc-c++ autoconf automake

        A、PCRE  PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。nginx rewrite依赖于PCRE库,所                        
               以在安装Tengine前一定要先安装PCRE,最新版本的PCRE可在官网(http://www.pcre.org/)获取。具体安装流程为:
                 下载 wget  https://ftp.pcre.org/pub/pcre/pcre-8.44.tar.gz
                 解压:  tar zxvf pcre-8.44.tar.gz
                                cd pcre-8.44
                 编译        ./configure --prefix=/usr/local/pcre
                 安装        make && make install
                   
        B、 openssl 
                    OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应                        
        用程序供测试或其它目的使用。,安装OpenSSL(http://www.openssl.org/source/)主要是为了让tengine支持Https的访问请求。 具体是            
        否安装看需求。
                    下载 wget  https://www.openssl.org/source/openssl-1.1.1i.tar.gz
                    解压  tar -zxcf openssl-1.1.1i.tar.gz
                    编译  ./config --prefix=/usr/local/openssl
                    安装   make && make install
        C、Zlib
                    Zlib是提供资料压缩之用的函式库,当Tengine想启用GZIP压缩的时候就需要使用到Zlib(http://www.zlib.net/)。
                    下载  wget  http://zlib.net/zlib-1.2.11.tar.gz
                    解压  tar -zxvf  zlib-1.2.11.tar.gz
                    进入编译  cd zlib-1.2.11  ./configure --prefix=/usr/local/zlib
                    安装  make && make install
        D、 jemalloc 
                   jemalloc(http://www.canonware.com/jemalloc/)是一个更好的内存管理工具,使用jemalloc可以更好的优化Tengine的内存管理。
                    下载  网站好像挂掉了 不管了

  3. 解压文件 安装
                             
                    A. 新建用户组
                          新建tengine用户组
                          groupadd -r nginx
                          useradd -r -g nginx -M nginx
                          
                    B. 解压预编译安装包 
                          tar -zxvf  tengine-2.3.2.tar.gz
                          cd tengine-2.3.2
                          ./configure --prefix=/usr/local/tengine-2.3.2 
                            make && makeinstall   
                    C. 更改用户权限
                          chown -R nginx:nginx /usr/local/tengine-2.3.2 
                          chmod -R 755 /usr/local/tengine-2.3.2 
           
  4. 执行脚本
       
#!/bin/sh
#
# nginx - this script starts and stops the nginx daemin
#
# chkconfig:   - 85 15 
# description:  Nginx is an HTTP(S) server, HTTP(S) reverse 
#               proxy and IMAP/POP3 proxy server
# processname: nginx
# config:      /usr/local/nginx/conf/nginx.conf
# pidfile:     /usr/local/nginx/logs/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/tengine-2.3.2/sbin/nginx"
prog=$(basename $nginx)

NGINX_CONF_FILE="/usr/local/tengine-2.3.2/conf/nginx.conf"

lockfile=/var/lock/subsys/nginx

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
}

restart() {
 configtest || return $?
 stop
 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
        添加脚本执行权限
              chmod +x /etc/init.d/nginx

        添加服务项  
              chkconfig --add nginx
              chkconfig --list

// systemctl 使用启动命令脚本

[Unit]
Description=The nginx HTTP and reverse proxy server
After=network.target remote-fs.target nss-lookup.target
 
[Service]
Type=forking
PIDFile=/run/nginx.pid
ExecStartPre=/usr/bin/rm -f /run/nginx.pid
ExecStartPre=/usr/local/tengine-2.3.2/sbin/nginx -t
ExecStart=/usr/local/tengine-2.3.2/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
KillMode=process
KillSignal=SIGQUIT
TimeoutStopSec=5
PrivateTmp=true
 
[Install]
WantedBy=multi-user.target

使用systemctl start nignx.service
如果 卡住 则需要 修改 nignx.conf 修改pid位置 ->> pid /run/nginx.pid;


    吾之爱,心之念。
           携子手,到白头。

原文地址:https://www.cnblogs.com/JC-0527/p/14237651.html