Tomcat与Nginx、Apache的关系如下图。由配送中心选择Apache、Nginx中的某一辆货车将包裹送给客户。虽然Apache、Nginx两辆车的用途是一样的,仔细区分它们两还是有区别的,比如:货物装载的速度、方式不一样,Apache有水箱可以直接运送活鱼而Nginx没有。
Tomcat有点像装活鱼的特殊包装。经过特殊包装打包的活鱼就可以通过Nginx和Apache运送到用户手中。另外,使用Tomcat包含了一种慢速的配送服务,所以配送中心一般都采用Nginx、Apache等配送。
通过上面的比方引申Apache、Nginx、Tomcat的实际用途Apache全称Apache 软件基金会的一个开放源码的网页伺服服务器软件。
Apache支持模块多,性能稳定。Apache本身是静态解析(静态页面),适合静态的HTML、图片等,但可以通过扩展脚本、模块来支持动态页面等。Apche可以支持PHP、CGI、Perl,但要使用Java就需要Tomcat,Java请求会通过Apache转发给Tomcat处理;
Nginx同样也是一款开源的服务。
Nginx是一个高性能的的反向代理来实现负载均衡器。
Apache、Nginx本质上就是一种运用在等)、音频、视频等资源。如下图:
不仅Apache和Nginx,绝大多数编程语言所包含的类库中也可以实现简单的。
Apache和Nginx的对比
Nginx使用异步非阻塞型事件驱动的方法来处理请求,而Apache则是通过同步阻塞型的方法来处理请求。
Apache接收一个请求后,就会创建一个进程,每个进程内单线程。对于一个负载相对较高的网站来说,256的进程,也就是256个线程。线程处理请求时是同步阻塞模式,会一直等待该请求读取程序文件(IO)(同步),执行业务逻辑,返回给客户端,所有操作完成之后才能处理下一个请求(阻塞)。
如果服务器已经达到256的极限,那么接下去的访问就需要排队。这也就是为什么某些服务器负载不高的原因了。
而Ngnix接收一个请求后,不会等待这个请求的文件读取操作完成之后才接收下一个请求,它不会等待这个请求的后续的处理结果。而是会马上循环处理下一个请求(不阻塞)。请求的程序文件执行完成之后,会主动通知该线程,不用你主动去等待或者轮询查看(异步)。最后返回给客户端。
这样做,每个请求过来就不需要等待很长的时间排队,而是马上就能接收,开始进行处理了。等处理完成之后,会主动通知回调这个线程进行数据返回。
基于上述特性Nginx更轻量级,比Apache占用更少的内存及资源抗并发,Nginx静态处理性能比Apache高3倍以上。在高并发下Nginx能保持低资源低消耗高性能高度模块化的设计。但Apache组件比Nginx多,对PHP的支持比较简单,Apche的Rewrite也比Nginx强大一些。
Tomcat用于扩充Apache和Nginx的动态性能从上面我们知道了Apache和Nginx的优势在于静态解析,那么动态解析就会交给其他模块处理,如Tomcat。
Tomcat是由Apache软件基金会旗下Jakarta项目开发的Servlet容器,实现对Servlet和JavaServer Page(jsp)的支持。Tomcat本身也包含了服务,但用的不多。
Tomcat一共设计了 4 种容器,它们分别为Engine、Host、Context、Wrapper,各个容器组件之间的关系是由大到小,即父子关系,它们之间关系形成一个树状的结构,它们的实现类都实现了 Container 接口。
总结如果Apache、Nginx、Tomcat打一局LOL,Apache和Nginx像是冲在最前面的英雄。而Tomcat攻击性能弱,它主要负责打辅助,奶前面的英雄。
Nginx并发性好,CPU、内存占用低。但如果rewrite频繁,那还是选择Apache好一些,Apache在处理动态请求更有优势。
以上个人浅见,欢迎批评指正。
认同我的看法,请点个赞再走,感谢!
喜欢我的,请关注我,再次感谢!
这个问题简单的回答就是,出现404而不是其他的,这是现代HTTP超文本传输协议的规定。 当然,这个问题要继续深入,就需要去问蒂姆·伯纳斯·李(Tim Berners-Lee)了。作为万维网之父,这些返...
免费的顶级域名你想要吗?还真有。 快告别那些免费二级域名吧 这是一家荷兰的公司,好在我们都可以打开,有中文界面 网址是 进入之后,输入自己想要的域名,例如我输入shishikan(试试看),然后会提示...
答:如今湖南网站建设公司非常多,至于网站建设费用一般价格也就几千,这种就是普通企业网站建设,也不是商城网站,站内的系统并不多,做起来不难的,当然对于很多企业来说既然想做就要做个好些的企业网站,这样...
先在Google提交您的网站域名,快的话当天就能收录网站。剩下的就是更新优质内容,SEO优化了。 不过您说的是网站新内容,应该是网站已经收录,这种情况想快速收录新内容就有2种方法: 1,把要收录的文章...
很荣幸回答您的问题,视频剪辑是一项比较专业的工作,需要一定的软件使用知识和视频处理知识。接来下我会从下面3个方面为你解答: A.从哪里找视频素材,B.有哪些视频处理软件,C.如何处理视频(具体可参考我...
网站文章浏览量统计代码如下: 如果是php的页面,直接在显示文章前面update一下文章浏览量就行。 特别注意一下刷新页面: if(isrefrash==session(id)){ 浏...
第一,在IE中进入“工具”菜单,依次找到:工具--Internet选项。第二,选择“安全”选项卡,再选择“受信任的站点”大图标(绿色的钩子)。确认“受信任的站点”文字变成选中状态。并且“受信任的站点”...
网站打开速度与下面几个因素有关: 1、网速,网速越快网站打开速度越快。 2、浏览器,不同浏览器打开网站的速度有所不同,主要表现在浏览器加载网站的快慢。 3、DNS,DNS是域名解析服务器,主要是将域名...