利用nginx concat模块合并js css

前言:

nginx-http-concat模块是由淘宝网开发的,现在淘宝网合并js和css正是用这个模块,如链接http://a.tbcdn.cn/??s/kissy/1.2.0/kissy-min.js,p/global/1.0/global-min.js,p/fp/2012/core.js,p/fp/2012/fp/module.js,p/fp/2012/fp/util.js,p/fp/2012/fp/directpromo.js?t=2012080620120924.js就是合并了kissy-min.js、global-min.js、core.js、module.js、util.js,directpromo.js等js文件。

环境:

Ubuntu 15.04 64位

步骤:

一、环境准备

安装Nginx之前要先准备好Ubuntu 15的环境,安装好Ubuntu系统之后,还需要安装以下组件:

1、apt-get install openssh-server

Windows用XShell连接,Mac 用自带的Terminal连接

2、sudo apt-get install libssl-dev

3、sudo apt-get install build-essential

编译Nginx和Nginx concat用到

4、sudo apt-get install vim

Linux下强大的编辑器

5、sudo apt-get install git

安装Git用于获取Nginx concat包

6、sudo apt-get install libpcre3 libpcre3-dev

安装Perl库,编译Nginx用到

7、sudo apt-get install curl libcurl3 libcurl3-dev php5-curl

测试Nginx页面

二、安装Nginx

1、下载Nginx

http://nginx.org/download/

mkdir /usr/local/Nginx
cd /usr/local/Nginx
wget http://nginx.org/download/nginx-1.9.9.tar.gz
tar zxvf nginx-1.9.9.tar.gz

2、下载nginx-http-concat

git clone https://github.com/idefav/nginx-http-concat
mv nginx-http-concat /usr/local/src

三、编译

cd ./nginx-1.9.9
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --add-module=/usr/local/src/nginx-http-concat
make && make install

四、配置

打开配置文件

vim /usr/local/nginx/conf/nginx.conf

1、CSS

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

2、JS

location /static/js/ {
    concat on;
    concat_types text/css;
    concat_max_files 30;
}

3、混合

location /static/all/ {
    concat on;
    concat_types text/css application/javascript;
    concat_max_files 20;
    concat_unique on;
}

五、启动Nginx

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

六、测试

curl http://localhost/static/??jquery.js,jquery.corner.js

七、开启Gzip

配置Gzip
gzip  on;
    gzip_min_length 1k;
    gzip_buffers 4 16k;
    gzip_disable "MSIE [1-6]\.";
    gzip_vary off;
    gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png application/javascript;
    gzip_comp_level 2;

重启Nginx

/usr/local/nginx/sbin/nginx -s reload

  测试

/usr/local/nginx# curl -I -H "Accept-Encoding: gzip, deflate"  http://192.168.19.128/static/??jquery.js,jquery.corner.js

  

时间: 2024-10-14 15:00:23

利用nginx concat模块合并js css的相关文章

Grunt的配置及使用(压缩合并js/css)

Grunt的配置及使用(压缩合并js/css) 安装 前提是你已经安装了nodejs和npm. 你能够在 nodejs.org 下载安装包安装.也能够通过包管理器(比方在 Mac 上用 homebrew,同一时候推荐在 Mac 上用 homebrew). 安装grunt CLI npm install -g grunt-cli 依照官方的说法.grunt-cli仅仅是为了在同一台机器上安装不同的grunt版本号,那么咱们先不去管他. 在项目中使用grunt 首先须要往项目里加入两个文件:pack

使用Tengine concat模块合并多个CSS,JS 请求

用淘宝改良的Nginx(Tengine)提供web服务 今天在本博客上顺利把Nginx换成了Tengine:并启用了动态加载模块 mod_concat,对本博客使用的知更鸟主题各个页面head模板中大量调用的多个CSS,JSS请求进行了合并,即客户端浏览器只需通过一次http请求,即可从服务器返回所需要的多个CSS,JS文件:下面是配置步骤: 编译安装Tengine 1,停止web服务,备份原来的Nginx目录(我是lnmp一键安装的,所以直接备份/usr/local/nginx目录即可) se

Web性能优化之动态合并JS/CSS文件并缓存客户端

在Web开发过程中,会产生很多的js/css文件,传统的引用外部文件的方式会产生多次的http请求,从而加重服务器负担且网页加载缓慢,如何在一次请求中将多个文件一次加载出来?接下来给大家介绍在ASP.NET中动态合并加载多个js或css文件.原理:减少请求服务器的次数达到优化效果先给大家看一下传统引用方式和优化后的比较:1.传统引用方式(下图): 这样的引用方式将会请求5个js文件也就是5次http请求(下图): 2.我们来看看优化后(下图): 大家可以看到修改后只有一次请求,花费的时间节省了很

利用Nginx sub模块对网页内容进行替换

在我们环境下,经常需要运营对网站进行测试,但是偶尔会出现不知道是在测试环境还是正式环境,因为测试环境都是通过Nginx反向代理进行访问.因此本文利用Nginx进行网页内容替换,然后在醒目位置进行提醒,以达到对测试环境的标识作用 在编译nginx的时候添加--with-http_sub_module以加载sub模块 ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module 

nginx concat模块配置 页面返回400 bad request

在1.4.x版本的nginx没有发现这个问题,但是在1.5.x版本就遇到了这个问题 由于Nginx在新版本中,使用了标准的 MIME-Type:application/javascript.而在nginx_concat_module模块目前版本的代码中,写的是 application/x-javascript 的类型. 在nginx-http-concat-master 找到,14行 static ngx_str_t ngx_http_concat_default_types[] = { ngx

利用nginx“ngx_http_referer_module”模块设置防盗链

ngx_http_referer_module模块允许拦截"Referer"请求头中含有非法值的请求,阻止它们访问站点. 需要注意的是伪造一个有效的"Referer"请求头是相当容易的, 因此这个模块的预期目的不在于彻底地阻止这些非法请求,而是为了阻止由正常浏览器发出的大规模此类请求. 还有一点需要注意,即使正常浏览器发送的合法请求,也可能没有"Referer"请求头. 语法:  valid_referers none | blocked | s

node压缩js/css/image

1.安装nodejs http://nodejs.org/ 2.安装各自的node package js我用的是UglifyJS github地址:https://github.com/mishoo/UglifyJS css我用的是clean-css github地址:https://github.com/GoalSmashers/clean-css 图片用的是node-smushit    github地址:https://github.com/colorhook/node-smushit 3

nginx js、css多个请求合并为一个请求(concat模块)

模块介绍 mod_concat模块由淘宝开发,目前已经包含在tengine中,并且淘宝已经在使用这个nginx模块.不过塔暂时没有包含在nginx中.这个模块类似于apache中的modconcat.如果需要使用它,需要使用两个”?”问号. 来个范例: http://example.com/??style1.css,style2.css,foo/style3.css 以上将原先3个请求合并为1个请求 如果你担心文件被用户的浏览器缓存而没有及时更新,你依旧可以带上一个版本号的参数,如下: http

window下 nginx http concat模块

常有用到nginx http concat模块合并多个js请求 合并的形式可以写成这样 <script src='http://www.a.com/??a.js,b.js,c/c.js'></script> 如需要window下已编译好的包含concat模块(基于淘宝http-concat)nginx压缩包,请前往传送门