lnmp为nginx增加nginx_http_concat模块

发布于 2015-10-07 作者 [重庆SEO]

lamp增加mod_concat模块的文章前几天我分享过一篇,lamp安装mod_concat模块合并css/js,减少请求提高页面整体加载速度

这次重庆SEO的测试环境为centos已安装lnmp,需要增加nginx_http_concat模块,步骤如下:

安装后面需要用到的组件

# yum install openssl openssl-devel pcre-devel git –y
下载nginx-http-concat模块
#git clone git://github.com/alibaba/nginx-http-concat.git
移动目录 后面configure会用到路径
#mv nginx-http-concat /root/nginx-http-concat

查看原始Nginx版本

这很重要,因为我们需要安装同一个版本来升级数据,configure arguments后面的内容记录下来,因为太长而且不同环境有所区别,本文用XXX表示 后面升级要用到

# nginx -V
nginx version: nginx/1.8.0
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-11) (GCC)
built with OpenSSL 1.0.1e-fips 11 Feb 2013
TLS SNI support enabled
configure arguments: xxx

下载对应的nginx版本并增加模块配置安装升级

# wget http://nginx.org/download/nginx-1.8.0.tar.gz
# tar zxvf nginx-1.8.0.tar.gz && cd nginx-1.8.0
#./configure xxx --add-module=/root/nginx-http-concat

安装之前先备份重要文件 以防意外,然后安装

# cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
# cp /usr/sbin/nginx /usr/sbin/nginx.bak
# make && make install

检查NGINX运行情况,显示类似这样就表示NGINX安装成功了

# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

接下来就是配置你的静态服务器conf文件启用nginx-http-concat模块即可,本例中的在/static/下js,css文件使用nginx-http-concat

server {
 location /static/ {
 # nginx_concat_module 主开关
 concat on;
 # 最大合并文件数
 # concat_max_files 10;
 # 只允许同类型文件合并
 # concat_unique on;
 # 允许合并的文件类型,多个以逗号分隔。如:application/x-javascript, text/css
 # concat_types text/html;
 }
}

如果nginx_concat_module报400错误,原因和解决办法如下:

出现由于Nginx在新版本中,使用了标准的 MIME-Type:application/javascript。而在nginx_concat_module模块目前版本的代码中,写的是 application/x-javascript 的类型。也就是模块认不到js文件了。。。
因此,我们最好在向nginx添加该模块之前,修改nginx_concat_module的源代码文件ngx_http_concat_module.c,将application/x-javascript更改为application/javascript,然后再编译安装即可!