做为一名JavaWeb方向程序员,更多的是写服务器后台代码,可是俗话说,不想当架构师的程序员不是好程序员,咱们要对并发、负载等词汇进行深刻探索。前端
1、从新认识Tomcatnginx
以上列举了Tomcat这个Web应用服务器的不足之处以及它的侧重点,由于它是Apache服务器的一个独立扩展插件,因此要将Apache服务器和Tomcat应用服务器一块儿使用才能取之长处避之短处。程序员
可是随着Nginx服务器的袭来,Apache服务器的主流功能均可被Nginx服务器代替,并且Nginx服务器的性能更好。Nginx对请求的处理是异步型的,非阻塞的;而Apache对请求的处理是阻塞型,非异步型的;在高并发状况下Nginx能保持地资源低消耗高性能高度模块化,并且Nginx的配置文件相对Apache更为简单。Nginx 同时也是一个很是优秀的邮件代理服务器,so,为何不选择Nginx服务器呢?后端
2、认识Nginx
浏览器
3、Nginx的功能缓存
Nginx还不止这些功能,我只是列出了常见的功能。tomcat
4、关于负载均衡服务器
当一台服务器的处理能力、存储空间不足时,不要企图去换更强大的服务器,对大型网站而言,无论多么强大的服务器,都知足不了网站持续增加的业务需求。这种状况下,更恰当的作法是增长一台服务器分担原有服务器的访问及存储压力。扩展网络设备和服务器的带宽、增长吞吐量、增强网络数据处理能力、提升网络的灵活性和可用性。其意思就是分摊到多个操做单元上进行执行。网络
在这里咱们只阐述对请求的的负载均衡。数据结构
经过负载均衡调度服务器,未来自浏览器的访问请求分发到应用服务器集群中的任何一台服务器上,若是有更多的用户,就在集群中加入更多的应用服务器,使应用服务器的负载压力再也不成为整个网站的瓶颈。
理论上的JavaWeb项目结构应该是这样的
5、Nginx和Tomcat对请求负载均衡的方案
总体思想方向:前端部署nginx服务器,后端部署tomcat应用。用户访问nginx服务器,对于静态资源nginx服务器直接返回到浏览器展现给用户,对动态资源的请求被nginx服务器转发(分配)到tomcat应用服务器,tomcat应用服务器将处理后获得的数据结构返回给nginx服务器,而后返回到浏览器展现给用户。
注意:在这里Tomcat应用服务器就是Java应用,能够理解为后台。
总结:在这里Nginx做为反向代理服务器,能够对后台的多台Tomcat服务器负载均衡,也可让Nginx处理静态页面的请求、Tomcat处理JSP页面请求,以此达到动静分离的目的。
这篇博客讲解科普、理论和方向,下篇博客将带来实践。