您的位置:首页 > 运维架构 > Tomcat

tomcat 与 nginx,apache的区别是什么?

2017-08-14 00:00 260 查看
HTTP服务器本质上也是一种应用程序——它通常运行在服务器之上,绑定服务器的IP地址并监听某一个tcp端口来接收并处理HTTP请求,这样客户端(一般来说是IE, Firefox,Chrome这样的浏览器)就能够通过HTTP协议来获取服务器上的网页(HTML格式)、文档(PDF格式)、音频(MP4格式)、视频(MOV格式)等等资源.

相同点

三者都是web server

Apache是Apache软件基金会下的一个项目——Apache HTTP Server Project;

Nginx同样也是一款开源的HTTP服务器软件(当然它也可以作为邮件代理服务器、通用的TCP代理服务器)。

Tomcat运行在JVM之上,它和HTTP服务器一样,绑定IP地址并监听TCP端口,同时还包含以下指责:

管理Servlet程序的生命周期

将URL映射到指定的Servlet进行处理

与Servlet程序合作处理HTTP请求——根据HTTP请求生成HttpServletResponse对象并传递给Servlet进行处理,将Servlet中的HttpServletResponse对象生成的内容返回给浏览器.

不同点

严格的来说,Apache/Nginx 应该叫做「HTTP Server」;而 Tomcat 则是一个「Application Server」,或者更准确的来说,是一个「Servlet/JSP」应用的容器(Ruby/Python 等其他语言开发的应用也无法直接运行在 Tomcat 上)。

一般的运用场景下,apache和nginx在负载均衡里是前端服务器,用来处理请求的转发(反向代理等);绝大部分时候他们本身并不会运行项目。tomcat和jetty,WebLogic是后端服务器,是直接用来运行项目的容器。简单来说就是你发出一个请求,先经过apache或nginx,他们会合理地把请求分配到后台比较不忙的tomcat或jetty。tomcat或jetty会把请求处理好返回给apache或nginx,然后a或n会把最终的请求结果告诉你。当然,如果是一些静态的数据,apache和nginx就可以直接返回给你了。

总结

三者都是web server,只是侧重点不同。

Nginx的职责:作为前端服务器,处理请求转发,使用场景,做应用服务器的转发(tomcat),邮件代理服务器、通用的TCP代理服务器。

tomcat后端服务器:直接运行项目的容器(java),一般不会直接去处理客户端的请求,毕竟tomcat并发量不是很大,静态的页面交给前端服务器,执行动态部分,起到资源合理配置,减少服务器压力。

apache也是作为前端服务器,不过都有插件支持动态编程语言处理,如 apache和php结合使用,apache和tomcat等。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Tomcat Nginx Apache