先上一段关于concat模块的介绍:

This is a module that is distributed with tengine which is a distribution of Nginx that is used by the e-commerce/auction site Taobao.com. This distribution contains some modules that are new on the Nginx scene. The ngx_http_concat module is one of them.

The module is inspired by Apache's modconcat. It follows the same pattern for enabling the concatenation. It uses two ?, like this:

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

If a third ? is present it's treated as version string. Like this:

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

虽然我是看不懂啦,反正大概就是可以合并多个静态资源链接的模块吧,淘宝开发的。
说实话,我觉得上面的完全没有必要,你要是不了解concat你为啥会找到这篇博文的?

废话不多说,我们就简单说一下安装concat模块。
众所周知,特么nginx如果要增加模块的话,需要重新编译。
我们先下载concat模块:

https://github.com/alibaba/nginx-http-concat/releases

这个是淘宝在github上开源的concat模块,我们直接下载打包版本,然后放到你的服务器里,目录比如说/home/concat
然后就是进入nginx的源码目录,比如说/home/nginx
然后进行编译,便宜的时候加上自定义目录,和加入编译模块,命令如下:

./configure --prefix=/www/nginx --add-module=/home/concat
make && make install

等它编译完之后,启动nginx

/www/nginx/sbin/nginx

就可以使用了。
使用方法:在conf文件下比如说你某个站点配置文件中

location /static/css/ {
    concat on;
    concat_max_files 20;
}

location /static/js/ {
    concat on;
    concat_max_files 30;    //concat最多文件量
}

如果你需要把css和js放在一起合并的话,你可以这样写:

location /static/ {
    concat on;
    concat_max_files 30;    //concat最多文件量
    concat_unique off;    //不限制文件类型,默认on就是必须同一种文件类型
}

修改完conf,重启一下nginx

/www/nginx/sbin/nginx -s reload

然后就可以生效了,前端使用方法如下

that's all.