nginx_concat_module 是淘宝研发的针对 nginx 的文件合并模块,主要用于合并前端代码减少 http 请求数。如果你的应用环境中部署了 nginx,那么可以考虑尝试此模块减少请求数。

因为需要加入这个新的nginx模块,所以需要重新编译nginx。为了不影响之前的ngxin,所以我们打算采用[nginx添加模块(非覆盖安装)]中的方法来实现飞覆盖安装。主要步骤如下:

1、试用nginx -V来查看nginx的版本以及nginx带上的参数,返回如下结果,configure arguments后面是我省略了,你可以自己记住那个编译的版本试用了什么configure,然后下面会用到:

nginx version: nginx/1.8.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC)
built with OpenSSL 1.0.1e-fips 11 Feb 2013
TLS SNI support enabled
configure arguments: --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_spdy_module --with-http_gzip_static_module --with-ipv6 --with-http_sub_module --add-module=/root/nginx-http-concat

2、然后去nginx上面下载对应版本的的nginx的源代码,并解压缩:

wget http://nginx.org/download/nginx-1.8.0.tar.gz
tar xzvf nginx-1.8.0.tar.gz

3、按照 nginx-http-concat 上面说的,git clone一下它的源码(或者直接在github上下载): 由于nginx在新版本中,使用了标准的 MIME-Type:application/javascript。而在nginx_concat_module模块目前版本的代码中,写的是 application/x-javascript 的类型。 修改nginx_concat_module的源代码文件ngx_http_concat_module.c,将application/x-javascript更改为application/javascript。

4、进入nginx-1.8.0目录运行

./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_spdy_module --with-http_gzip_static_module --with-ipv6 --with-http_sub_module  --add-module=/root/nginx-http-concat

然后make即可,因为只是覆盖不安装所以不需要install

5、make完之后在objs目录下面找到nginx文件,然后覆盖掉当前的/user/local/nginx/sbin/nginx文件即可。

6、在nginx中配置:

# nginx_concat_module主开关
concat on;

# 最大合并文件数
concat_max_files 10;

# 只允许同类型文件合并
concat_unique on;

# 允许合并的文件类型,多个以逗号分隔。如:application/x-javascript, text/css
concat_types text/css,application/x-javascript;

results matching ""

    No results matching ""