• ngx_http_concat_module
    • 指令

    ngx_http_concat_module

    该模块类似于apache中的mod_concat模块,用于合并多个文件在一个响应报文中。

    请求参数需要用两个问号('??')例如:

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

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

    1. http://example.com/??style1.css,style2.css,foo/style3.css?v=102234
    1. 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]中的相同类型的文件,例如:

    1. 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'

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

    1. 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模块
    1. configure [--with-http_concat_module --with-http_concat_module=shared]

      --with-http_concat_module选项,concat模块将被静态编译到tengine

      --with-http_concat_module=sharedconcat模块将被编译成动态文件,采用动态模块的方式添加到tengine
    • 编译,安装
    1. make && make install
    • 配置concat的配置项

    • 运行

    原文: http://tengine.taobao.org/document_cn/http_concat_cn.html