apache和tomcat到底是神马关系

原创 2012年03月31日 12:53:51

用了这么久的tomcat,其实一直也没搞懂,apache到底是不是就是tomcat。结果,,,不是一个东西。

apache是httpserver。而tomcat仅仅是java servlet容器。

在tomcat集群之前添加一层apache,有以下好处:

1. tomcat不建议用root跑,而linux下面不可以用非root帐号跑80端口 (除了apache外,也可以用iptables)
2. 用mod_jk做软负载均衡
3. tomcat是单一的java servlet container,如果没有apache则不可以运行php, perl等程序
4. 简单的IMAGE/HTML/ARCHIVE文件在tomcat上也是经过java线程处理,比较浪费资源。apache处理静态网页的速度比较好。

5.Socket handling(姑且认为是连接)/系统稳定性。Apache在处理错误链接上优于Tomcat。主要原因是Tomcat所有的连接都交给JVM来处理,而JVM是跨平台的,问题是跨平台的优化是一个严峻的考验。大部分时间java程序都是正常的,但是当情况非常恶劣时,例如:非常频繁的掉线,无效数据包,无效IP的无效请求。Apache比基于JVM的程序要好。


另外,http://bbs.chinaunix.net/thread-653582-1-1.html这里介绍了使用apache做软负载均衡,同时tomcat集群会话保持的。

看看wiki怎么解释jk模块

What is JK (or AJP)?

AJP is a wire protocol. It an optimized version of the HTTP protocol to allow a standalone web server such as Apache to talk to Tomcat. Historically, Apache has been much faster than Tomcat at serving static content. The idea is to let Apache serve the static content when possible, but proxy the request to Tomcat for Tomcat related content.


mod_jk is mature, stable and extremely flexible.. It is under active development by members of the Tomcat community.

由于 tomcat 的 HTTP 处理部分都由 Java 所写(5.5.12 版本以后出现了 native 库,用以提高其 I/O 和 SSL 的性能),在高并发的情况下负载较高。而 apache 对于静态文件的处 理能力比 tomcat 强,所以 tomcat 开发组开发了与 apache 结合使用的 mod_jk 模块。该协议 由 apache 作请求代理,将 HTTP 协议的请求转化为 AJP 协议包,并传给后端的 tomcat。mod_jk 和 apache 现在普遍使用 AJP1.3 协议。它是一个二进制格式的协议,比 字符格式的 HTTP 协议解析速度要快。
除了性能的提升,mod_jk 另外的一个作用可以实现 apache 与 tomcat 一对多的对应, 使后端 tomcat 负载均衡。mod_jk 也提供 apache 与 tomcat 链接情况的监控。
mod_jk 模块的典型工作流程是这样的:一个 HTTP 请求过来,mod_jk 模块根据其 URI 选择合适的 worker 来进行处理。如果是lb_worker(负载均衡的 worker),就再根据各种条件选择后台合适的 ajp_worker(处理 AJP 协议的 worker)。ajp_worker 将 HTTP 协议的包, 组装成 AJP 协议格式的包,然后选取一条空闲的链接,发送给后台的 tomcat 服务器。等到后台将数据发送过来时,接收并解析 AJP 协议,重新组装成 HTTP 协议,然后把结果发送给 客户端。

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

apache和tomcat到底是神马关系

用了这么久的tomcat,其实一直也没搞懂,apache到底是不是就是tomcat。结果,,,不是一个东西。 apache是httpserver。而tomcat仅仅是java servlet容器。 ...

task_struct到底是个神马东西?

上回我们说到了常用的操作系统进程调度算法,学过操作系统的同学应该都知道操作系统的四大职能:进程管理、内存管理、设备管理以及文件系统的管理。 那么最重要的职能之一:进程管理,是如何进行的呢?首先在要管理...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

apache和tomcat的关系

一:  apache支持静态页,tomcat支持动态的,比如servlet等,    一般使用apache+tomcat的话,apache只是作为一个转发,对jsp的处理是由tomcat来处理的...

Apache与Tomcat关系

对Apache服务器和Tomcat服务器作了简单的对比和区分,并对两者的工作原理做简单分析。

关于Apache和Tomcat的关系说明

apache是提供HTTP服务的WEB容器;tomcat是在其上提供JSP等服务的JAVA容器。 apache 不仅可以提供JSP;还可以通过挂接其他的MOD提供ASP、PHP、PERL等服 务。TO...

ESB和SOA到底是什么?

ESB和SOA到底是什么? 一个关于系统的系统思维方式的优秀表述,  Nick Coghlan核心Python开发者如是说。 Translated from English by k...

闭包

1、变量作用域 要理解闭包,首先要理解javascript的特殊的变量作用域。 变量的作用域无非就两种:全局变量和局部变量。 javascript语言的特别之处就在于:函数内部可以直接读取全局变...

到底EJB是什么

到底EJB是什么

指针到底是什么

指针到底是什么 指针(pointer)到底是什么,弄清楚这个问题很重要,这是我们所讨论的话题的源头,而在阐述指针是什么之前,我们需要先来看一下变量的概念。 我们知道,计算机的内存(primary ...

Apache与Tomcat的区别和关系

熟悉三国的朋友都知道曹操,曹操有二十五个儿子,其中最得曹操宠爱的是曹丕、曹植、曹彰三个,曹丕性格阴冷,擅长政治;曹植才华横溢,放浪不羁;曹彰武艺高强,战功卓著。曹操一直希望这三个儿子当中选取自己的继承...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)