CentOS nginx 1.6.0 安装 nginx-http-concat 模块的小坑
2014-06-19 #Coding

nginx-http-concat是 淘宝 tengine 中的一个模块,主要用于拼合静态资源文件,减少HTTP请求。

seajs的时候,大部分应用了此模块来做拼合,跟r.js不同把文件拼合放在了服务端,而不是打包过程中。这么一来既保持了模块的颗粒化,又解决了不拼和模块增加的HTTP请求。

昨天在自己的CentOS的主机上安装nginx-http-concatnginx版本是1.6.0,看了nginx-http-concatgithub上的markdown,也就需要重新加入nginx-http-concat后编译下nginx然后更新就OK了。

官方实例上默认需要配置的参数也就两个:

1
2
3
4
5
6
7
8
9
10

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

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

更新完nginx,修改完nginx.conf,打开浏览器来了个类似的url:

1
http://example.com/static/??a.js,b.js

一直400啊,有木有 - =,文件的MIME也都是application/x-javascript。然后重新编译修改文件路径、插件包路径等等试了试,还是不行。

最后试一试的态度 concat_types 重新设置了一遍。OK了。。。

囧啊,之前1.5.2的时候还看过别的配置,concat_types都是有默认值的那。

后来发现 https://github.com/alibaba/nginx-http-concat/issues/16 issues中也有人遇到这个问题。

记录下,一个良好的习惯,多去看看issues帮助解决问题。