标签: tengine

  • Centos 7.4 编译安装Tengine 2.2.2/Nginx 并配置开机启动

    Centos 7.4 编译安装Tengine 2.2.2/Nginx 并配置开机启动

    Tengine是由淘宝网发起的Web服务器项目。它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。Tengine的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到了很好的检验。它的最终目标是打造一个高效、稳定、安全、易用的Web平台。

    编译安装可自定义安装目录,解决不必要的软件间依赖,最主要的是编译安装一般是用最新的版本。
    系统环境:Centos 7.4 Tengine 2.2.2

    安装必要的编译环境

    yum -y install gcc gcc-c++ wget make autoconf automake

    下载pcre zlib openssl Tengine

    wget https://ftp.pcre.org/pub/pcre/pcre-8.42.tar.gz
    wget http://www.zlib.net/zlib-1.2.11.tar.gz
    wget https://www.openssl.org/source/openssl-1.1.0f.tar.gz
    wget http://tengine.taobao.org/download/tengine-2.2.2.tar.gz
    

    解压pcre zlib openssl Tengine

    tar -xzvf pcre-8.42.tar.gz
    tar -xzvf zlib-1.2.11.tar.gz
    tar -xzvf openssl-1.1.0f.tar.gz
    tar -xzvf tengine-2.2.2.tar.gz
    

    创建Tengine运行用户

    #新建www用户组
    groupadd www
    #新建Tengine用户
    useradd -g www Tengine -s /sbin/nologin
    

    编译Tengine

    ./configure \
    --prefix=/data/apps/tengine \  //安装目录
    --conf-path=/data/apps/conf/tengine/nginx.conf \  //配置文件目录
    --lock-path=/dev/shm/nginx.lock \  //loc文件目录
    --sbin-path=/data/apps/tengine/sbin/nginx \  //可执行文件目录
    --error-log-path=/data/apps/log/tengine/error.log \  //错误日志
    --http-log-path=/data/apps/log/tengine/access.log \  //访问日志
    --http-client-body-temp-path=/data/apps/temp/tengine/client/ \
    --http-proxy-temp-path=/data/apps/temp/tengine/proxy/ \
    --http-fastcgi-temp-path=/data/apps/temp/tengine/fcgi/ \
    --http-uwsgi-temp-path=/data/apps/temp/tengine/uwsgi/ \
    --http-scgi-temp-path=/data/apps/temp/tengine/scgi/ \
    --pid-path=/data/apps/temp/tengine/pid/nginx.pid \  //pid目录
    --group=www \  //用户组
    --user=Tengine \  //运行用户
    --with-pcre=/root/pcre-8.42 \  //pcre目录
    --with-zlib=/root/zlib-1.2.11 \  //zlib目录 
    --with-openssl=/root/openssl-1.1.0f \ //openssl目录
    --with-http_ssl_module \
    --with-http_realip_module \
    --with-http_image_filter_module \
    --with-http_sub_module \
    --with-http_gzip_static_module \
    --with-http_secure_link_module \
    --with-http_stub_status_module \
    --with-http_v2_module \
    --with-http_slice_module 
    

    安装

    make && make install
    

    创建目录 pid目录 log目录 并更改所属用户

    mkdir -p /data/apps/temp/tengine/pid  /data/apps/log/tengine
    #更改文件夹所属用户为tengine
    chown -R tengine:www /data/apps/temp/tengine /data/apps/log/tengine data/apps/conf/tengine /data/apps/tengine
    

    启动tengine

    /data/apps/tengine/sbin/nginx

    直接用IP地址访问 出现以下界面表示安装成功

    或者用命令 curl -I http://127.0.0.1 出现HTTP/1.1 200 OK 表示成功

    添加服务项 开机启动

    创建启动脚本

    vim /etc/rc.d/init.d/nginx
    

    写入以下内容

    #! /bin/bash
    # chkconfig: - 85 15
    PATH=/data/apps/tengine
    DESC="nginx daemon"
    NAME=tengine
    DAEMON=$PATH/sbin/$NAME
    CONFIGFILE=/data/apps/conf/tengine/$NAME.conf
    PIDFILE=/data/apps/temp/tengine/pid/$NAME.pid
    SCRIPTNAME=/etc/init.d/$NAME
    set -e
    [ -x "$DAEMON" ] || exit 0
    do_start() {
    $DAEMON -c $CONFIGFILE || echo -n "nginx already running"
    }
    do_stop() {
    $DAEMON -s stop || echo -n "nginx not running"
    }
    do_reload() {
    $DAEMON -s reload || echo -n "nginx can't reload"
    }
    case "$1" in
    start)
    echo -n "Starting $DESC: $NAME"
    do_start
    echo "."
    ;;
    stop)
    echo -n "Stopping $DESC: $NAME"
    do_stop
    echo "."
    ;;
    reload|graceful)
    echo -n "Reloading $DESC configuration..."
    do_reload
    echo "."
    ;;
    restart)
    echo -n "Restarting $DESC: $NAME"
    do_stop
    do_start
    echo "."
    ;;
    *)
    echo "Usage: $SCRIPTNAME {start|stop|reload|restart}" >&2
    exit 3
    ;;
    esac
    exit 0
    

    给脚本添加执行权限

    chmod +x nginx

    添加服务

    chkconfig --add nginx

    加入开机启动

    chkconfig nginx on

    启动、重启、停止命令

    #启动
    service nginx start
    #重启
    service nginx restart
    #重新加载配置文件
    service nginx reload
    #停止
    service nginx stop
    #也可以这样
    /data/apps/tengine/sbin/nginx -s stop    #停止服务 
    /data/apps/tengine/sbin/nginx -s quit    #退出服务 
    /data/apps/tengine/sbin/nginx -s reopen    #重新打开日志文件 
    /data/apps/tengine/sbin/nginx -s reload    #重新加载配置文件