zoukankan      html  css  js  c++  java
  • 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;


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

  • 相关阅读:
    组合算法实现
    Memcached 和 Redis 分布式锁方案
    CLR 内存分配和垃圾收集 GC
    Windbg 的使用和常用命令
    Geohash 算法学习
    经纬度计算
    Windbg 分析CPU上涨
    Windbg 分析内存上涨
    django基于存储在前端的token用户认证
    非常详细的Django使用Token(转)
  • 原文地址:https://www.cnblogs.com/JC-0527/p/14237651.html
Copyright © 2011-2022 走看看