Tomcat是一种类似于IIS、Apache的Web服务端程序,也就是Web容器。
Tomcat和Apache的区别是:
(iis就不和它对比了,毕竟过时的东西)
1. Apache只支持静态网页html,tomcat支持jsp动态网页。
2. Apache是武装直升机,Tomcat是汤姆猫,这才是最大的区别。
Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun和部分公司和个人一起开发完善的轻量级Web应用服务器,是Servlet规范和JSP规范的开源实现。由于因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。目前Tomcat最新的版本是9.0版本。
Tomcat最初是由Sun的软件构架师詹姆斯·邓肯·戴维森开发的,后来他帮助将其变为开源项目,并由Sun贡献给Apache软件基金会。由于大部分开源项目O’Reilly都会出一本相关的书,并且将其封面设计成某个动物的素描,因此他希望将此项目以一个动物的名字命名。因为他希望这种动物能够自己照顾自己,最终,他将其命名为Tomcat(英语公猫或其他雄性猫科动物),Tomcat的Logo兼吉祥物也被设计成了一只公猫。
Web应用服务器只有Tomcat吗?当然不是!目前公司和企业使用的Web服务器还有WebSphere,WebLogic,Kangle,Apache,JBoss等等,但是大多数是收费的,针对我们平时开发的大多数项目,Tomcat的性能已经能够满足我们的要求,因此大多数企业中的开发者或者小公司还是常用Tomcat作为应用服务器。
Tomcat与Nginx/Apache的应用架构
Nginx、Apache都是目前主流的Web服务器,也可以作为反向代理服务器;它们在处理大量并发的请求连接、连接会话管理和静态内容请求等方面相比Tomcat更具优势。
所以一般在实际应用中,先是通过Nginx(或Apache)反向代理服务器接收请求,匹配分离动态/静态请求(动静分离);
如果是静态请求,则转发到另外的Nginx WEB服务器上,返回静态内容;如果是动态请求,则转发到后面的Tomcat应用服务器,处理动态请求的业务逻辑。
简单的架构如下: