首页 > 代码库 > Nginx实现简单动静分离

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实现简单动静分离