博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
阿里巴巴开源项目nginx_concat_module企业部署实例
阅读量:5827 次
发布时间:2019-06-18

本文共 2853 字,大约阅读时间需要 9 分钟。

       公司的前端开发工程师今天找我,让我给他搞下淘宝的一个开源项目 nginx_concat_module 模块,将该模块添加到线上的nginx上去。

简介

       nginx_concat_module 是淘宝研发的针对 nginx 的文件合并模块,主要用于合并前端代码减少 http 请求数。如果你的应用环境中部署了 nginx,那么可以考虑尝试此模块减少请求数。

部署:

1、准备工具

[root@tools-ops01-jz ~]# yum install gcc gcc-c++ make wget subversion -y[root@tools-ops01-jz ~]# cd /usr/local/src[root@tools-ops01-jz src]# wget http://down1.chinaunix.net/distfiles/openssl-0.9.8q.tar.gz[root@tools-ops01-jz src]# tar zxf openssl-0.9.8q.tar.gz[root@tools-ops01-jz src]# wget http://nchc.dl.sourceforge.net/project/pcre/pcre/8.32/pcre-8.32.tar.gz[root@tools-ops01-jz src]# tar zxf pcre-8.32.tar.gz[root@tools-ops01-jz src]#


2、从淘宝的svn取 nginx_concat_module 的源代码

[root@tools-ops01-jz src]# svn co http://code.taobao.org/svn/nginx_concat_module/trunk/  nginx_concat_module

这里需要注意:

       由于Nginx在新版本中,使用了标准的 MIME-Type:application/javascript。而在nginx_concat_module模块目前版本的代码中,写的是 application/x-javascript 的类型。

[root@tools-ops01-jz src]# grep javascript nginx_concat_module/ngx_http_concat_module.c    ngx_string("application/x-javascript"),

这样子就造成了,你安装该模块之后,对于js文件依旧不能合并,并且会报如下的400错误。

因此,我们最好在向nginx添加该模块之前,修改nginx_concat_module的源代码文件ngx_http_concat_module.c,将application/x-javascript更改为application/javascript,然后再编译安装即可!

修改后的效果如下:

[root@tools-ops01-jz src]# grep javascript nginx_concat_module/ngx_http_concat_module.c    ngx_string("application/javascript"),

3、安装部署

[root@tools-ops01-jz src]# wget http://nginx.org/download/nginx-1.6.0.tar.gz[root@tools-ops01-jz src]# tar zxf nginx-1.6.0.tar.gz[root@tools-ops01-jz src]# useradd nginx -s /sbin/nologin[root@tools-ops01-jz src]# cd nginx-1.6.0[root@tools-ops01-jz nginx-1.6.0]# ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx-1.6.0 --with-http_ssl_module --with-openssl=/usr/local/src/openssl-0.9.8q --with-pcre=/usr/local/src/pcre-8.32 --add-module=/usr/local/src/nginx-concat-master[root@tools-ops01-jz nginx-1.6.0]# make[root@tools-ops01-jz nginx-1.6.0]# make install[root@tools-ops01-jz nginx-1.6.0]# ln -s /usr/local/nginx-1.6.0 /usr/local/nginx[root@tools-ops01-jz nginx-1.6.0]# /usr/local/nginx -s reload


4、配置nginx_concat_module模块参数,使其生效

       nginx_concat_module模块添加进nginx之后,我们需要对其进行配置才能够正常使用。配置的参数主要有如下几个:

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

      在使用中,如果在location 标签下配置就表示对当前的location生效,如果在server下就表示对server标签下的内容生效。需要注意的是,它可能会和你配置的rewrite规则干扰,因此请注意使用范围。


5、使用

[root@tools-ops01-jz nginx-1.6.0]# curl http://localhost/b.js bbbbbbbbbbbbbbbbbbbbbbbbbbb[root@tools-ops01-jz nginx-1.6.0]# curl http://localhost/a.js aaaaaaaaaaaaaaaaaaaaaaaaaaa[root@tools-ops01-jz nginx-1.6.0]# curl http://localhost/??a.js,b.js aaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbb

下面附上一些该模块相关的资料:

淘宝SVN关于该项目的信息:

github关系该项目的信息:

%3Aissue+is%3A403

转载地址:http://ybadx.baihongyu.com/

你可能感兴趣的文章
[NOIp2017提高组]小凯的疑惑
查看>>
《C程序设计语言》练习1-5
查看>>
$\frac{dy}{dx}$ 是什么意思?
查看>>
Go开发之路(目录)
查看>>
RHEL6.5安装成功ORACLE11GR2之后,编写PROC程序出错解决方法
查看>>
(50)与magento集成
查看>>
Ubuntu设置python3为默认版本
查看>>
JsonCpp 的使用
查看>>
问题账户需求分析
查看>>
JavaSE-代码块
查看>>
爬取所有校园新闻
查看>>
32、SpringBoot-整合Dubbo
查看>>
python面向对象基础
查看>>
HDU 2044 一只小蜜蜂(递归)
查看>>
docker 下 安装rancher 笔记
查看>>
spring两大核心对象IOC和AOP(新手理解)
查看>>
数据分析相关
查看>>
Python LDAP中的时间戳转换为Linux下时间
查看>>
微信小程序蓝牙连接小票打印机
查看>>
环境错误2
查看>>