Centos7 安装 Tengine,centos7tengine


Tengine介绍

Tengine是淘宝开发的基于nginx的应用服务器,反向代理服务器。它兼容nginx的所有配置,并且在其上增加了很多实用的功能,例如动态模块加载,集成lua语言进行扩展等,在性能方面有了比较大的改进。下面是Tengine独有的部分功能,查看全部等前往官网,地址是 http://tengine.taobao.org/ 。

一、Tengine部分特性

1.nginx -m 查看所有已经加载的模块,static说明已经安装的,shared说明是动态安装的;

2.nginx架构是模块化的,除了主模块,其他模块都需在安装时进行编译安装,也可在安装后进行编译安装;

3.tengine完全兼容nginx的配置;

4.tengine实现动态加载模块,不需重新编译,就可以实现安装新的模块。动态模块功能会被默认安装。而nginx不支持模块动态加载,需要编译重启;

5.lua语言扩展功能,通过编程可以有效为应用服务器分流请求;

6.强大的负载均衡功能,可以检测应用服务器的健康情况,动态的上下线。

二、安装Tengine,具有LUA模块

  1. 安装必要的编译环境好

    
    # yum update
    
    
    # yum install gcc gcc-c++ autoconf automake
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
  2. 安装需要的组件

    1. PCRE

      PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。nginx rewrite依赖于PCRE库,所以在安装Tengine前一定要先安装PCRE,最新版本的PCRE可在官网(http://www.pcre.org/)获取。具体安装流程为:

      cd /usr/local/src
      wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.40.tar.gz
      tar zxvf pcre-8.40.tar.gz
      cd pcre-8.40
      ./configure --prefix=/usr/local/pcre
      make && make install
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6

      附加信息:

      源码的安装一般由3个步骤组成:配置(configure)、编译(make)、安装(make install)。 
      Configure是一个可执行脚本,它有很多选项,在待安装的源码路径下使用命令./configure –help输出详细的选项列表。其中–prefix选项是配置安装的路径,如果不配置该选项,安装后可执行文件默认放在/usr /local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc,其它的资源文件放在/usr /local/share,比较凌乱。 
      如果配置–prefix,如:./configure –prefix=/usr/local/test,可以把所有资源文件放在/usr/local/test的路径中,不会杂乱。 
      用了—prefix选项的另一个好处是卸载软件或移植软件。当某个安装的软件不再需要时,只须简单的删除该安装目录,就可以把软件卸载得干干净净;移植软件只需拷贝整个目录到另外一个机器即可(相同的操作系统)。当然要卸载程序,也可以在原来的make目录下用一次make uninstall,但前提是make文件指定过uninstall。

    2. OpenSSL

      OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。,安装OpenSSL(http://www.openssl.org/source/)主要是为了让tengine支持Https的访问请求。具体是否安装看需求。 
      复制代码 代码如下:

      cd /usr/local/src
      wget http://www.openssl.org/source/openssl-1.0.2.tar.gz
      tar zxvf openssl-1.0.2.tar.gz
      cd openssl-1.0.2.tar.gz
      ./configure --prefix=/usr/local/openssl
      make && make install
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
    3. Zlib

      Zlib是提供资料压缩之用的函式库,当Tengine想启用GZIP压缩的时候就需要使用到Zlib(http://www.zlib.net/)。

      cd /usr/local/src
      wget http://zlib.net/zlib-1.2.11.tar.gz
      tar zxvf zlib-1.2.11.tar.gz
      cd zlib-1.2.11.tar.gz
      ./configure --prefix=/usr/local/zlib
      make && make install
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
    4. jemalloc

      jemalloc(http://www.canonware.com/jemalloc/)是一个更好的内存管理工具,使用jemalloc可以更好的优化Tengine的内存管理。

      cd /usr/local/src
      wget http://www.canonware.com/download/jemalloc/jemalloc-3.6.0.tar.bz2
      tar jxvf jemalloc-3.6.0.tar.bz2
      cd jemalloc-3.6.0.tar.bz2
      ./configure --prefix=/usr/local/jemalloc
      make && make install
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
  3. 安装Tengine

    在主要核心的组件安装完毕以后就可以安装Tegine了,最新版本的Tegine可从官网(http://tengine.taobao.org/)获取。 
    在编译安装前还需要做的一件事是添加一个专门的用户来执行Tengine。当然你也可以用root(不建议)。 
    复制代码 代码如下:

    groupadd www-data
    useradd -s /sbin/nologin -g www-data www-data
    • 1
    • 2

    接下来才是进行安装:

    cd /usr/local/src
    wget http://tengine.taobao.org/download/tengine-2.2.0.tar.gz
    tar -zxvf tengine-2.2.0.tar.gz
    cd tengine-2.2.0
    ./configure --prefix=/usr/local/nginx \
    --user=www-data \
    --group=www-data \
    --with-pcre=/usr/local/src/pcre-8.40 \
    --with-openssl=/usr/local/src/openssl-1.0.2 \
    --with-jemalloc=/usr/local/src/jemalloc-3.6.0 \
    --with-http_gzip_static_module \
    --with-http_realip_module \
    --with-http_stub_status_module \
    --with-http_concat_module \
    --with-zlib=/usr/local/src/zlib-1.2.11
    make && make install
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    注意配置的时候 –with-pcre 、–with-openssl、–with-jemalloc、–with-zlib的路径为源文件的路径。

  4. Centos7配置Tengine,设置tengine开机自启

    1. 系统用户登录系统后启动的服务的目录

      /usr/lib/systemd/system

    2. 如需要开机没有登陆情况下就能运行的程序在系统目录内

      /usr/lib/systemd/system

    3. 我希望系统开机就启动目录,所以我把文件放在系统目录内。

      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
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
    4. 修改文件权限

      chmod 745 nginx.service
      • 1
    5. 设置为开机启动

      systemctl enable nginx.service
      • 1
    6. 其它命令

      启动nginx服务

      systemctl start nginx.service
      • 1

      设置开机自启动

      systemctl enable nginx.service
      • 1

      停止开机自启动

      systemctl disable nginx.service
      • 1

      查看服务当前状态

      systemctl status nginx.service
      • 1

      重新启动服务

      systemctl restart nginx.service
      • 1

      查看所有已启动的服务

      systemctl list-units --type=service

相关内容

    暂无相关文章