猿记录

一个记录、分享的博客

您的位置:主页 > 技术专栏 >

nginx nginx-http-concat模块的使用

2018-07-09 11:31:56 作者:yxl 次阅读 技术专栏

nginx nginx-http-concat 是淘宝开发的一个合并请求的nginx的一个模块。

我们在访问淘宝的时候,会看到代码中的js和css文件是通过一次请求或得的,我们知道浏览器一次请求只能并发访问数个资源,这样的处理错输在网络传输层面可以大大节省时间,这里使用的技术就是把css、js等静态资源合并为一个资源。淘宝使用的tengine是基于nginx的web服务器

淘宝的资源加载

clipboard.png

1、下载nginx-http-concat源码包解压

[root@yxl ~]# wget https://codeload.github.com/alibaba/nginx-http-concat/zip/master

[root@yxl ~]# unzip master

[root@yxl~]# cd nginx-http-concat-master/

2、编译第三方模块nginx-http-concat  

[root@raykaeso ~]# ./configure --with-http_stub_status_module --add-module=../nginx-http-concat-master/

[root@raykaeso ~]# make

第二部的情况下,首先看下你的nginx是不是编译了,这个问题刚开始也是困扰很久,请教了一个运维大神,cd到你nginx源码目录 ,nginx源码路径在www/server/nginx/src目录内,直接进入编译即可   --add-module=  这个是你的nginx-http-concat的目录,请自己替换成你的路径

3、查看nginx编译的参数

如果看到nginx-http-concat 这个模块在里面说明编译成功

4、修改配置 (这部是关键)

 后面的mobile_skin 是你目录

location /mobile_skin/js/ {

concat on;

       concat_max_files 20;

       concat_unique off;

       concat_types text/css application/javascript; //这个如果不设置,会出现400 Bad Request错误

}

5、重启下nginx nginx -s reload

效果如下

如果这个还不行的,还是报了400错误由于Nginx在新版本中,使用了标准的 MIME-Type:application/javascript。而在nginx_concat_module模块目前版本的代码中,

写的是 application/x-javascript 的类型

修改 nginx-http-concat/ngx_http_concat_module.c

把 x-javascript 改为 javascript

重新编译nginx即可



凡本站注明“本站”或“投稿”的所有文章,版权均属于本站或投稿人,未经本站授权不得转载、摘编或利用其它方式使用上述作品。

编辑:yxl 关键词: nginx-http-c
0

网友评论