nginx被称为HTTP服务器,Tomcat被称为应用(Java)服务器,从字面上来看,一个是服务于HTTP,关心的是 HTTP 协议层面的传输和访问控制,所以在 Nginx 上你可以看到代理、负载均衡等功能
客户端通过 HTTP Server 访问服务器上存储的资源(HTML 文件、图片文件等等)
Tomcat呢?应用服务器,是一个应用执行的容器。它首先需要支持开发语言的运行环境,保证应用能够在应用服务器上正常运行。
为了方便,应用服务器往往也会集成 HTTP Server 的功能,但是不如专业的 HTTP Server 那么强大,所以应用服务器往往是运行在 HTTP Server 的背后,执行应用,
将动态的内容转化为静态的内容之后,通过 HTTP Server 分发到客户端。
Tomcat结合Apache、Nginx实现高性能的web服务器
Tomcat虽然是一个servlet和jsp容器,但是它也是一个轻量级的web服务器。它既可以处理动态内容,也可以处理静态内容。不过,tomcat的最大优势在于处理动态请求,处理静态内容的能力不如apache和nginx,并且经过测试发现,tomcat在高并发的场景下,其接受的最大并发连接数是有限制的,连接数过多会导致tomcat处于"僵死"状态,因此,在这种情况下,我们可以利用nginx的高并发,低消耗的特点与tomcat一起使用。因此,tomcat与nginx、apache结合使用共有如下几点原因:
1、tomcat处理html的能力不如Apache和nginx,tomcat处理静态内容的速度不如apache和nginx。
2、tomcat接受的最大并发数有限,连接数过多,会导致tomcat处于"僵尸"状态,对后续的连接失去响应,需要结合nginx一起使用。
通常情况下,tomcat与nginx、Apache结合使用,nginx、apache既可以提供web服务,也可以转发动态请求至tomcat服务器上。但在一个高性能的站点上,通常nginx、apache只提供代理的功能,也就是转发请求至tomcat服务器上,而对于静态内容的响应,则由前端负载均衡器来转发至专门的静态服务器上进行处理。
部分转载:https://blog.csdn.net/weixin_44221613/article/details/88410701