Apache、Tomcat和Nginx的简单介绍及比较

1、定义

Apache

Apache HTTP服务器是一个模块化的服务器,可以运行在几乎所有广泛使用的计算机平台上。其属于web服务器。Apache支持支持模块多,性能稳定,Apache本身是静态解析适合静态HTML、图片等,但可以通过扩展脚本、模块等支持动态页面等。(Apache可以支持PHPcgiperl,但是要使用Java的话,你需要Tomcat在Apache后台支撑,将Java请求由Apache转发给Tomcat处理。)

缺点:配置相对复杂,自身不支持动态页面。

Tomcat

Tomcat是应用(Java)服务器,它只是一个Servlet(JSP也翻译成Servlet)容器,可以认为是Apache的扩展,但是可以独立于Apache运行。

Nginx

Nginx是俄罗斯人编写的十分轻量级的HTTP服务器、Nginx,它的发音为“engine X”,是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP、POP3、SMTP代理服务器

在这里插入图片描述

2、比较

Apache与Tomcat的比较

相同点:

  1. 两者都是Apache组织开发的

  2. 两者都有HTTP服务的功能

  3. 两者都是免费的

不同点:

Apache是专门用了提供HTTP服务的,以及相关配置的(例如虚拟主机、URL转发等等),而Tomcat是Apache组织在符合Java EE的JSP、Servlet标准下开发的一个JSP服务器。

Apache是一个Web服务器环境程序,启用他可以作为Web服务器使用,不过只支持静态网页如(ASP,PHP,CGI,JSP)等动态网页的就不行。如果要在Apache环境下运行JSP的话就需要一个解释器来执行JSP网页,而这个JSP解释器就是Tomcat。

Apache:侧重于HTTPServer ,Tomcat:侧重于Servlet引擎,如果以Standalone方式运行,功能上与Apache等效,支持JSP,但对静态网页不太理想;

Apache是Web服务器,Tomcat是应用(Java)服务器,它只是一个Servlet(JSP也翻译成Servlet)容器,可以认为是Apache的扩展,但是可以独立于Apache运行。

实际使用中Apache与Tomcat常常是整合使用:

  • 如果客户端请求的是静态页面,则只需要Apache服务器响应请求。如果客户端请求动态页面,则是Tomcat服务器响应请求。因为JSP是服务器端解释代码的,这样整合就可以减少Tomcat的服务开销。可以理解Tomcat为Apache的一种扩展。

3、Nginx与Apache比较

nginx相对于apache的优点

  1. 轻量级,同样的 web 服务,比 apache 占用更少的内存及资源

  2. 抗并发,nginx 处理请求是异步非阻塞的,而 apache 则是阻塞型的,在高并发下 nginx 能保持低资源低消耗高性能

  3. 高度模块化的设计,编写模块相对简单

  4. 提供负载均衡

  5. 社区活跃,各种高性能模块出品迅速

apache 相对于nginx 的优点

  1. apache的 rewrite 比nginx 的强大

  2. 支持动态页面

  3. 支持的模块多,基本涵盖所有应用

  4. 性能稳定,而nginx相对bug较多

两者优缺点比较

  1. Nginx 配置简洁, Apache 复杂

  2. Nginx 静态处理性能比 Apache 高3倍以上

  3. Apache 对 PHP 支持比较简单,Nginx 需要配合其他后端用

  4. Apache 的组件比 Nginx 多

  5. apache是同步多进程模型,一个连接对应一个进程。nginx是异步的,多个连接(万级别)可以对应一个进程

  6. Nginx处理静态文件好,耗费内存少

  7. 动态请求由apache去做,nginx只适合静态和反向

  8. Nginx适合做前端服务器,负载性能很好

  9. Nginx本身就是一个反向代理服务器 ,且支持负载均衡

在这里插入图片描述

4、总结

Nginx优点:负载均衡、反向代理、处理静态文件优势。nginx处理静态请求的速度高于apache。

Apache优点:相对于Tomcat服务器来说处理静态文件是它的优势,速度快。Apache是静态解析,适合静态HTML、图片等。

Tomcat:动态解析容器、处理动态请求,是编译JSP、Servlet的容器,Nginx有动态分离机制,静态请求直接就可以通过Nginx处理,动态请求才转发请求到后台交由Tomcat进行处理。Apache在处理动态有优势,Nginx并发性比较好,CPU内存占用低,如果rewrite频繁,那还是Apache较适合。

反向代理的理解:反向代理(Reverse Proxy)方式是指以代理服务器来接受 Internet 上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值