Tomcat与Nginx、Apache都是web server。但是它们在功能上和使用定位上,还是有区分的。
什么是web server?顾名思义,web server就是提供web服务的server,即web服务器或网站服务器,主要提供网上信息浏览服务。当在浏览器输入一个网址之后,浏览器会把这个HTTP请求发送给对应的web服务器,web服务器经过相关处理,会返回HTTP响应,浏览器把接收到的响应数据经过渲染,就变成我们看到的网页了。
在web服务器上完成相关处理的是web服务,它是一组运行在web服务器上的应用程序软件。打个比方,web服务器就是你的电脑,web服务软件就是电脑上运行的QQ之类的应用程序。基本上web服务器是专用的,只会运行web服务程序软件,所以web服务和web服务器可以理解为同一个事物。
目前常用的web服务器软件有:apache、nginx、Tomcat、iis 、gws
Apache隶属于Apache软件基金会的一个开放源码的web服务器软件,由于其开源免费、跨平台和安全性被广泛使用,是世界使用排名第一的Web服务器软件,是中小型web服务的主流。目前常用的是Apache 2.2系列。
Apache优点:
功能强大。Apache自带很多功能模块,可以根据需求编译自己需要的模块配置简单。Apache的配置文件非常简单,通过简单的配置可以实现强大的功能性能稳定。Apache在高负载请求下性能卓越Apache缺点:
自身只支持静态网页,对于jsp、php等动态网页不支持,可配置动静分离。Apache是以进程为基础的机构,比线程系统开销更大。nginx是一个有俄罗斯人开发的免费开源、轻量级、高性能 Web 服务器软件,是世界使用排名第二的Web服务器软件。由于其高性能和轻量级的特性,nginx的使用量不断在上升,冲击着apache第一的宝座。是大型网站web服务的主流。在功能上,nginx不但是一个优秀的web服务软件,还具有反向代理功能和缓存功能。
nginx优点:
支持高并发。能支持几万的并发连接消耗资源少。处理静态网页时,比apache占用更低的系统资源配置简单。与Apache相比配置还更简单。nginx的缺点:
nginx本身不支持处理动态网页。nginx可以通过配置动静分离实现处理动态网页,处理php网页,需要安装FastCGI进程管理器,将php请求转发给FastCGI进程管理器处理。处理jsp网页,可以将请求转发给对应的Java服务器。nginx是主进程 多个子线程。这既是nginx性能卓越的优点所在,也存在潜在的缺点,当nginx主进程挂掉之后,整个nginx服务器将会停止提供服务。Tomcat是Apache软件基金会Jakarta项目的一个核心项目,是一个开源免费的web服务器。Tomcat一直是中小企业动态web服务的主流,常用作解析Java程序的容器。目前常用的是Tomcat6和Tomcat7系列。
Tomcat的优点:
支持servlet和jsp,可以很好的处理动态网页跨平台。在window系统和Linux系统都能很好的运行Tomcat的缺点:
处理静态网页与apache和nginx相比效率不高。可配置性不强。由于Apache处理静态网页性能更好,Tomcat一般用于处理动态网页,Tomcat和Apache在功能上有一定的互补性,所以在nginx崛起之前,常常将Tomcat和Apache进行整合配合使用,在Apache上配置动静分离。
当客户端请求静态页面时,由Apache响应请求;当客户端请求动态页面时,则由Apache将请求转发给Tomcat服务器,由Tomcat服务器进行处理。保障了应用的可拓展性和安全性。在nginx崛起之后,nginx逐渐替代Apache的功能。
nginx同样都是性能卓越的web服务器。但是nginx作为后起之秀,相比Apache有了更多的改进。
在性能上,nginx占用系统资源更少,能支持更多的并发连接,达到更高的访问效率
在功能上,nginx还是一个性能堪比haproxy的反向代理软件,甚至nginx部署配置更加简单、方便。
所以说nginx是一款很有发展潜力的web服务器软件,未来一定可以超越Apache,称为世界排名第一的web服务器软件
nginx由于高性能、轻量级和支持反向代理功能,常用做七层负载均衡器。Apache历史悠久、性能稳定,常用作web服务器,可与nginx搭配使用。Tomcat支持处理jsp动态网页,常用作解析Java程序的容器,可与nginx搭配使用。当应用的环境为window操作系统时,使用的web服务器软件是iis,也可以与nginx搭配使用。
我是技术猿小黄,很高兴为您回答,如果您喜欢我的回答,可以关注我,点个赞,谢谢
如果您有什么想法或建议,欢迎下方留言评论。
都是很好的服务器软件