当前位置:首页 > Web开发 > 正文

JSP)等动态网页的就不行

2024-03-31 Web开发

我们在学习web架构中的处事时,必然城市碰到Tomcat与Nginx,Apache这三个处事,那么这三个处事有什么钱区别?

介绍去区别之前,我们需要先来认识一下什么是Tomcat与Nginx,Apache。

1. Apache

Apache HTTP处事器是一个模块化的处事器,可以运行在几乎所有广泛使用的计算机平台上。其属于应用处事器。Apache撑持撑持模块多,性能不变,Apache自己是静态解析,适合静态HTML、图片等,但可以通过扩展脚本、模块等撑持动态页面等。

(Apche可以撑持PHP ,cgi(外部应用措施与Web处事器之间的接口), perl,但是要使用Java的话,你需要Tomcat在Apache后台支撑,将Java请求由Apache转发给Tomcat措置惩罚惩罚。) 错误谬误:配置相对庞大,自身不撑持动态页面。

2. Tomcat:

Tomcat是应用(Java)处事器,它只是一个Servlet(JSP也翻译成Servlet)容器(这里什么是Servlet和JSP可以参考后续文章),可以认为是Apache的扩展,但是可以独立于Apache运行。

3. Nginx

Nginx是俄罗斯人编写的十分轻量级的HTTP处事器,Nginx,它的发音为“engine X”,是一个高性能的HTTP和反向代办代理处事器,同时也是一个IMAP/POP3/SMTP (这三个是什么可以参考我的这篇文章https://www.cnblogs.com/qingbaizhinian/p/12267869.html )代办代理处事器。

区别:

1. Apache与Tomcat的对照

不异点:

两者都是Apache组织开发的两者都有HTTP处事的成果两者都是免费的 差别点:

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的一种扩展。

2. Nginx与Apache对照

1) nginx相对付apache的长处

轻量级,同样起web 处事,比apache占用更少的内存及资源 抗并发,nginx 措置惩罚惩罚请求是异步非梗阻的,而apache 则是梗阻型的,在高并发下nginx 能连结低资源低消耗高性能高度模块化的设计,编写模块相对简单供给负载均衡

社区活跃,各类高性能模块出品迅速

2) apache 相对付nginx 的长处

apache的 rewrite 比nginx 的强大 ;

撑持动态页面;

撑持的模块多,根基涵盖所有应用;

性能不变,而nginx相对bug较多。

3) 两者优错误谬误对照

Nginx 配置简洁, Apache 庞大 ;

Nginx 静态措置惩罚惩罚性能比 Apache 高 3倍以上 ;

Apache 对 PHP 撑持对照简单,Nginx 需要共同其他后端用;Apache 的组件比 Nginx 多 ;

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

nginx措置惩罚惩罚静态文件好,耗费内存少;

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

Nginx适合做前端处事器,负载性能很好;

Nginx自己就是一个反向代办代理处事器 ,且撑持负载均衡

3. 总结

Nginx长处:负载均衡、反向代办代理、措置惩罚惩罚静态文件优势。nginx措置惩罚惩罚静态请求的速度高于apache;

Apache长处:相对付Tomcat处事器来说措置惩罚惩罚静态文件是它的优势,速度快。Apache是静态解析,适合静态HTML、图片等。

Tomcat:动态解析容器,措置惩罚惩罚动态请求,是编译JSPServlet的容器,Nginx有动态疏散机制,静态请求直接就可以通过Nginx措置惩罚惩罚,动态请求才转发请求到后台交由Tomcat进行措置惩罚惩罚。

Apache在措置惩罚惩罚动态有优势,Nginx并发性对照好,CPU内存占用低,如果rewrite频繁,那还是Apache较适合。

讲了这么多观点,下面打个比喻来介绍三者关系:

nginx / apache是一辆卡车,上面可以装一些对象如html等(静态的)。但是不能装水(动态的),要装水必需要有桶(容器),Tomcat就是一个桶(装像Java这样的水),而这个桶也可以放在车上,也可以不放在卡车上。

     客户端(浏览器):人;

    nginx / apache:卡车;

    静态页面:毛巾;

    tomcat:水桶;

    动态页面:水。

    人要拿毛巾,可以直接从卡车上拿取;

    人要拿水,,需要先通过卡车找到车上的桶,才华取得(桶可以不放在车上,把桶单独放在另外处所人也可以取到水);

简述Tomcat与Nginx,Apache的区别

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/30428.html