阿里巴巴开源项目nginx_concat_module企业部署实例
? ? ? ?公司的前端開發工程師今天找我,讓我給他搞下淘寶的一個開源項目 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.cngx_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.cngx_string("application/javascript"),3、安裝部署
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? aaaaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbbbb下面附上一些該模塊相關的資料:
淘寶SVN關于該項目的信息:
http://code.taobao.org/p/nginx_concat_module/src/
github關系該項目的信息:
https://github.com/alibaba/nginx-http-concat/issues?q=is%3Aissue+is%3A403
總結
以上是生活随笔為你收集整理的阿里巴巴开源项目nginx_concat_module企业部署实例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在Linux下远程使用scp拷贝文件
- 下一篇: 我和linux的第四天