Tomcat,Apache和Nginx服务器的区别


Tomcat,Apache和Nginx服务器都被称为服务器,但是在功能和用途上却有很大区别:

  • Apache和Nginx在负载均衡里是前端服务器,用来处理请求的转发(反向代理等),绝大多数时候他们本身并不会运行项目;
  • Tomcat是后端服务器,是直接用来运行项目的容器;

1 概念不同:

概念比较

名称

定义

特点

Tomcat

应用(java)服务器

只是一个Servlet容器

Apache

ApacheHTTP是一个模块化服务器,可以运行在几乎所有广泛使用的计算机平台上

模块多,性能稳定,其本身是静态解析,适合静态HTML和图片等,但可以通过扩展脚本,模块等支持动态页面

Nginx

轻量级的HTTP服务器

是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP/SMTP代理服务器

 

2 相互比较

比较的名称

相同点

不同点

Apache和Tomcat

  1. 都是Apache组织开发的
  2. 都有HTTP服务的功能
  3. 都是免费的
  1. Apache是专门提供HTTP服务,以及相关配置的,只支持静态网页;而Tomcat是Apache组织在符合Java EE 的JSP,Servlet标准型开发的一个jsp服务器
  2. Apache侧重HTTP服务器,Tomcat侧重Servlet服务引擎;
  3. Apache是Web服务器,Tomcat是应用服务器,它只是一个Servlet容器,可以认为是Apache的扩展;
  4. 实际使用中Apache和Tomcat常常是整合使用,如果客户端请求的是静态页面,则只需要Apache服务器响应请求。如果客户端请求的是动态页面,则是Tomcat服务器响应请求,这样整合可以减小Tomcat的服务开销。

Nginx和Apache

 

  1. 都是HTTP服务器软件(都可以作为WEB服务器使用;);
  2. 功能上都采用模块化结构设计;
  3. 都支持通用的语言接口,如PHP、Perl、Python等;
  4. 支持正向、反向代理、虚拟主机、URL重写、压缩传输、SSL加密传输
  1. Nginx较Apache优点是轻量级,同样是web服务器,比Apache占用更少的内存及资源抗并发,Nginx处理请求是异步非阻塞的,而Apache是阻塞型的,在高并发下Nginx能保持低资源低消耗高性能高度模块化的设计,编写模块比较简单,提供负载均衡社区活跃;
  2. Apache较Nginx优点是Apache的Rewrite更强大,支持动态页面,支持的模块多,性能稳定

Tomcat和Nginx

。。。。。。。上面优缺点基本上都罗列出来了,没什么好说的了。

。。。。。。。。。上面优缺点基本上都罗列出来了,没什么好说的了。

3 总结:可以说三者各有千秋,在选型时可以按照项目需求进行确定,Apache,Tomcat和Nginx服务器都有自己擅长处理的领域,共同承担起目前大部分程序对服务器的需求。