web项目中有时候一个页面会加载多个js或css资源请求,导致页面加载耗时较长,这时优化的方向可以采用资源合并,可以在客户端事先合并,也可以在服务端进行资源合并,服务端合并的方式使用起来更灵活。

  nginx-http-concat是阿里云开发的nginx开源组件,可以在nginx编译安装时添加模块,也可以在已安装的nginx中重新添加模块。

一、已安装的nginx添加nginx-http-concat模块

  已安装的nginx添加module,需要重新进行编译覆盖,这点与apache不同,apache只需要添加module,然后添加引用即可。

1、添加nginx编译脚本

   1) 查看当前nginx版本,命令:/usr/local/sbin/nginx -v

   2) 下载相应的nginx源码版本,地址:http://nginx.org/download/

   3) 上传到服务器并解压

2、添加nginx-http-concat源码

   1) 下载module,git地址:https://github.com/alibaba/nginx-http-concat

   2) 上传到服务器并解压,本实验解压地址:/usr/local/nginx/third_module/nginx-http-concat

3、执行重新编译

   1) 查看当前nginx编译参数,执行命令:/usr/local/sbin/nginx -V

   2) 进入nginx源码目录,在获取的编译参数中添加:--add-module=/usr/local/nginx/thrid_module/nginx-http-concat,执行添加后的命令,如:./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_spdy_module --with-http_gzip_static_module --with-ipv6 --with-http_sub_module --add-module=/usr/local/nginx/third_module/nginx-http-concat

   3) 执行编译命令:make,注意编译之后千万不能执行make install

   4) 编译完后,当前nginx源码目录下生成objs目录则说明编译成功

4、覆盖nginx执行脚本

   1) 备份当前nginx执行脚本,命令:cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak。如果拷贝出错,则将nginx进行杀掉再进行,命令:killall nginx

   2) 拷贝上一步骤编译后的新nginx脚本,命令:cp /mnw/download/nginx-1.8.0/objs/nginx /usr/local/nginx/sbin/

   3) 查看编译参数,命令:/usr/local/nginx/sbin/nginx -V,如果编译参数中存在刚添加的模块,则说明编译成功

   4) 重启nginx

二、配置使用nginx-http-concat模块

1、配置项

   1) concat,是否打开资源合并开关,选项:on | off,默认:off

   2) concat_types,模块处理的资源类型,默认:text/css application/x-javascript

   3) concat_unique,是否允许合并不同类型的资源,选项:on | off,默认:on

   4) concat_max_files,允许合并的最大资源数目,默认:10

   5) concat_delimiter,合并后的文件内容分隔符,用于区分不同文件的内容

   6) concat_ignore_file_error,是否忽略404或403错误,选项:on | off,默认:off

2、配置实例

   1) nginx添加配置

location /static/css/ {
concat on;
concat_delimiter /* my file */;
}

   2) 重启nginx,命令:/usr/local/nginx/sbin/nginx -s reload

   3) 创建测试文件,在web目录下创建/static/css目录,并创建文件a.css、b.css,内容随意。

   4) 请求地址:http://localhost/my-web/static/css??a.css,b.css,如看到返回a.css、b.css合并内容,则整个配置完成。注意,url中static/css目录必须真实存在,且a.css与b.css必须位于此目录中。

使用nginx-http-concat添加nginx资源请求合并功能的更多相关文章

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

    模块介绍 mod_concat模块由淘宝开发,目前已经包含在tengine中,并且淘宝已经在使用这个nginx模块.不过塔暂时没有包含在nginx中.这个模块类似于apache中的modconcat. ...

  2. [nginx] 网上最全面nginx教程(近100篇文章整理)

    转载:http://bbs.linuxtone.org/thread-25588-1-1.html Nginx基础 1.  nginx安装 2.  nginx 编译参数详解 3.  nginx安装配置 ...

  3. Hystrix-request collapsing(请求合并)

    介绍: Hystrix的请求合并就是把重复的请求批量的用一个HystrixCommand命令去执行,以减少通信消耗和线程数的占用.Hystrix的请求合并用到了HystrixCollapser这个抽象 ...

  4. nginx日志中添加请求的response日志

    换个新公司,做一些新鲜的事情,经过一天的琢磨,终于成功添加response日志 在nginx的日志中添加接口response的日志 由于此功能在nginx内置的功能中没有,需要安装第三方模块ngx_l ...

  5. Nginx反向代理Tomcat静态资源无法加载以及请求链接错误

     在使用Nginx实现Tomcat的负载均衡的时候,项目发布到了Tomcat,Nginx也配置好了, 当访问的时候发现了与预期不符 表现为: 静态资源加载失败 链接跳转地址错误 下面是我错误的配置文件 ...

  6. 使用nginx处理静态资源请求,其余交给node

    由于项目后台使用的是node,然而node不适合对静态资源的处理,因为他的异步处理(事件轮询)机制,所以更擅长的是密集I/O型的应用,所以我就有了一个想法,使用nginx来做反向代理,当请求的是静态资 ...

  7. 给nginx添加客户端的请求最大单文件限制

    在nginx.conf中添加如下. client_max_body_size 10m; #允许客户端请求的最大单文件字节数 client_body_buffer_size 128k; #缓冲区代理缓冲 ...

  8. 二.Nginx反向代理和静态资源服务配置

    2018年03月31日 10:30:12 麦洛_ 阅读数:1362更多 所属专栏: nginx   版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/M ...

  9. 谈谈渲染,玩玩nginx——前后端分离,转发请求到Tomcat的尝试

    一.谈谈"渲染" 相信好多人都挺听过"渲染"这个词,但不清楚它是什么意思?前端开发以为这是后端的活儿,后端开发以为是前端的事儿,推着推着就不了了之.其实渲染很简 ...

随机推荐

  1. for循环中i--的妙用 及 两变量互换数值的问题

    int[] array = new int[4]; for(int i = 0; i < array.length; i++){ array[i] = (int)(Math.random() * ...

  2. linux yum安装jdk

    >>>>>>>>>> 实例: yum安装jdk 1.查看当前的jdk版本,并卸载 (注1:rpm -qa ###解释:查询所有安装的rpm包 ...

  3. 源码解析-Volley(转自codeKK)

    Volley 源码解析 本文为 Android 开源项目源码解析 中 Volley 部分项目地址:Volley,分析的版本:35ce778,Demo 地址:Volley Demo分析者:grumoon ...

  4. aps.net cored 新概念

    Tag Helpers The EnvironmentTagHelper can be used to include different scripts in your views (for exa ...

  5. 【Leetcode】Longest Palindromic Substring

    问题:https://leetcode.com/problems/longest-palindromic-substring/ 给定一个字符串 S,求出 S 的最长回文子串 思路: 1. 回文:一个字 ...

  6. ArcEngine奇怪异常:HRESULT:0x80040351

    错误如图 根据该博客,http://blog.csdn.net/u011609113/article/details/51155116, 显示该错误为Duplicate Field Names wit ...

  7. Ecilpse快捷键

     编辑快捷键 [ALT+/] 显示代码提示,以及代码自动补全功能.  [Ctrl+/] 添加注释  [Ctrl+D] 删除当前行 窗口快捷键  [Ctrl+M] 窗口最大化和还原   查看和定位快捷键 ...

  8. 使用File查询出所有的文件和目录的信息

    public class Test34 { public static void main(String[] args) { File f=new File("f:"); File ...

  9. Oracle 树操作(select…start with…connect by…prior)

    摘自:http://www.cnblogs.com/linjiqin/archive/2013/06/24/3152674.html oracle树查询的最重要的就是select…start with ...

  10. 配置Office 365单点登录过程中的一些注意事项

    这些天一直在整O365单点登录的问题,其中涉及到了很多知识点,其中以ADFS,CA为主吧,IIS为辅.下面我就把这些天积累的一些经验写下来备用. 1. 申请证书不一定要通过“证书颁发机构Web注册”, ...