前置的内容:学习过javaee内容的话就能更深理解Application server的意义和servlet的作用,进而理解tomact。
静态资源
如doc,jpg,pdf等内容,客户端请求这些内容一般由nginx完成,也就是http 服务器。始终只是把服务器上的文件如实的通过 HTTP 协议传输给客户端。
动态资源
由servlet动态生成的一些html页面,servlet就是提供一些doGet
,doPost
方法,然后Servlet本身无法实例化这些方法,需要一个servlet容器来完成实例化,也就是main
方法。这个容器就是tomact,也就是Application Server。Application Server往往也会集成 HTTP Server 的功能,但是不如专业的 HTTP Server 那么强大,所以应用服务器往往是运行在 HTTP Server 的背后,执行应用,将动态的内容转化为静态的内容之后,通过 HTTP Server 分发到客户端。
Nginx
动静态资源分离——运用Nginx的反向代理功能分发请求:所有动态资源的请求交给Tomcat,而静态资源的请求(例如图片、视频、CSS、JavaScript文件等)则直接由Nginx返回到浏览器,这样能大大减轻Tomcat的压力。
负载均衡,当业务压力增大时,可能一个Tomcat的实例不足以处理,那么这时可以启动多个Tomcat实例进行水平扩展,而Nginx的负载均衡功能可以把请求通过算法分发到各个不同的实例进行处理
反向代理
下图来自http://www.zhihu.com/people/sun-guan-jun-92,对反向代理做了形象的描述,看这个图就能明白上面写的反向代理了。