Nginx实现简单动静分离
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx实现简单动静分离相关的知识,希望对你有一定的参考价值。
笔者最近在开始学提高web性能方面的知识。本文将介绍使用nginx做分布式部署,实现静动分离,并且分析性能。
静动分离,就是将css、js、jpg等静态资源和jsp等动态资源分开处理,以此提高服务器响应速度,提高性能。
下面给出的例子实现了静动分离,其中静态资源,如css、js、jpg等由Nginx服务器处理,直接获取磁盘资源,动态资源,如jsp等由tomcat服务器处理。
首先配置Nginx。
nginx.conf的具体配置如下:
Nginx服务器作为代理服务器,监听80端口,判断如果的访问动态资源,则由监听8080端口的tomcat服务器处理,否则访问本地磁盘html文件夹里的静态资源。
启动nginx服务器和tomcat服务器,在浏览器访问80端口,查看firefox浏览器的开发者工具,如下:
可以发现,静态资源都是直接从磁盘获取,响应头都有Cache-Control字段,静态资源的请求时间均为0ms。
而直接使用8080端口访问页面,得到如下:
每个资源都需要花1-3ms来获取,而且响应头没有Cache-Control字段。由此可见,动静分离已经实现。
同样使用ab指令进行压力测试,得到结果如下:
静动分离:
无静动分离:
同样可以看到实现静动分离的版本的性能比较好,将完成所有请求的总时间*1000(因为数值太小)、吞吐率、传输率制作成条形图对比如下:
性能高低显而易见的。
当然上述内容只是nginx最简单的使用而已,nginx提高性能的内容还有很多很多,包括缓存等等,更多内容有待学习。
以上是关于Nginx实现简单动静分离的主要内容,如果未能解决你的问题,请参考以下文章