编译安装Tengine

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编译安装Tengine相关的知识,希望对你有一定的参考价值。

Tengine

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

Tengine编译安装

Tengine的编译安装选项基本完全兼容于nginx,可以直接使用nginx编译时的安装选项对其进行编译安装,其具体的特性需要查阅官网http://tengine.taobao.org
1.获取tengine源码包

[[email protected] ~]# wget http://tengine.taobao.org/download/tengine-2.3.0.tar.gz

2.解压源码包

[[email protected] ~]# tar -xf tengine-2.3.0.tar.gz 

3.检查安装所需要环境和工具

[[email protected] tengine-2.2.3]# ./configure --prefix=/usr/local/tengine --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --add-module=/root/echo-nginx-module

4.生成模块并复制到相应的目录下

[[email protected] tengine-2.2.3]# make && make install

ngx_http_concat_module

该模块类似于apache中的mod_concat模块,用于合并多个文件在一个响应报文中。
请求参数需要用两个问号(‘??‘)例如:

http://example.com/??style1.css,style2.css,foo/style3.css

参数中某位置只包含一个‘?’,则‘?‘后表示文件的版本,例如:

http://example.com/??style1.css,style2.css,foo/style3.css?v=102234
location /static/css/ 
    concat on;
    concat_max_files 20;


location /static/js/ 
    concat on;
    concat_max_files 30;

指令

concat on | off
默认: concat off
上下文: http, server, location

在配置的地方使模块有效(失效)

concat_types MIME types
默认: concat_types: text/css application/x-javascript
上下文: http, server, location

定义哪些MIME types是可以被接受

concat_unique on | off
默认: concat_unique on
上下文: http, server, location

定义是否只接受在[MIME types]中的相同类型的文件,例如:

http://example.com/static/??foo.css,bar/foobaz.js

如果配置为 ‘concat_unique on‘ 那么将返回400,如果配置为‘concat_unique off‘
那么将合并两个文件。

concat_max_files number
默认: concat_max_files 10
上下文: http, server, location

定义最大能接受的文件数量。

concat_delimiter string
默认: 无
上下文 ‘http, server, location‘

定义在文件之间添加分隔符,例如

http://example.com/??1.js,2.js;

如果配置为concat_delimiter "\n"响应会在1.js和2.js两个文件之间插入一个换行符(‘\n‘);

concat_ignore_file_error ‘on | off‘
默认 ‘concat_ignore_file_error off‘
上下文 ‘http, server, location‘

定义模块是否忽略文件不存在(404)或者没有权限(403)错误

动态模块和静态模块的安装

静态模块编译安装

由于在编译时没有将concat模块编译进tengine所以需要将tengine重新进行编译
在编译时加上--with-http-concat_module

[[email protected] tengine-2.2.3]# ./configure --prefix=/usr/local/tengine --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --add-module=/root/echo-nginx-module --with-http_concat_module

然后执行make和make install

[[email protected] tengine-2.2.3]# make && make install

安装完成后查看所编译安装的选项

[[email protected] tengine-2.2.3]# /usr/local/tengine/sbin/nginx -V
Tengine version: Tengine/2.2.3 (nginx/1.8.1)
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) 
TLS SNI support enabled
configure arguments: --prefix=/usr/local/tengine --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --add-module=/root/echo-nginx-module --with-http_concat_module

动态模块编译安装

动态编译是将模块单独编译然后再配置文件中导入此模块
1.先编译此模块再最后使用--with-http_concat_module=shared参数

[[email protected] tengine-2.2.3]# ./configure --prefix=/usr/local/tengine --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --add-module=/root/echo-nginx-module --with-http_concat_module=shared

2.对模块进行编译

[[email protected] tengine-2.2.3]# make dso_install

3.此时modules目录下已经有此模块

[[email protected] tengine-2.2.3]# ls /usr/local/tengine/modules/
ngx_http_concat_module.so

4.在配置文件中导入模块

dso 
    load ngx_http_concat_module.so;

以上是关于编译安装Tengine的主要内容,如果未能解决你的问题,请参考以下文章

centos6.5下tengine-2.2.2简易安装记录

Tengine编译安装

CentOS7 源码编译安装Tengine

编译安装 Centos 7 x64 + tengine.2.0.3 (实测+笔记)

使用tengine DSO 来动态编译安装第三方模块(Lua

使用tengine DSO 来动态编译安装第三方模块(Lua