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 协议,然后把结果发送给 客户端。

相关文章推荐

换行符到底是个神马东西?换行符详解

在计算机还没有出现之前,有一种叫做电传打字机(Teletype  Model  33)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是...

14.1-全栈Java笔记: Java语言中GUI到底是神马鬼?| AWT | Swing

到目前为止,我们在Java中编写的基本都是基于控制台的程序;而Java编程语言之所以如此流行的一个主要原因之一,就是因为它支持图形用户界面功能,即GUI(Graphical User Interfac...

int(size)中的size到底神马意思(mysql)

(译者注:这个问题困扰了我连续几天,相关资料很少,没有明确的给出答案,也可能是笔者理解力太差,总算找到篇英文帖专门研究这个问题,学习的同时翻译了过来,与大家共同探讨) 2007,8,24 星期五 2...

寻根究底,委托到底有神马好处

上次导师制开会,朱丹说再看大话设计模式,问我“委托到底有神马好处”,扪心自问,一时答不上来。 先来模拟个场景:我在打游戏,但运气不好每次打游戏都会被主管看到,老板当然不喜欢他的员工在上班的时间打...

遗迹系列 -【学渣告诉你】到底神马是傅里叶级数!

无法联系到原作者或原文章地址, 贴上资源获取地址 360文档 作为一个KB到极点的前T大垫纸系的学渣男孩纸, 尼玛学傅里叶级数/变换的时候纯粹桑不起啊!!!!本日志的参考文献为: 陈宇航 《傅里叶级数...

【学渣告诉你】到底神马是傅里叶级数!!!!!!

【学渣告诉你】到底神马是傅里叶级数!!!!!! 2017-04-05  alittlebi...  转自 联合参谋学院 修改 微信分享: ...

【网虫】DNS,Host和VPN三者到底是什么关系?

http://www.zhihu.com/question/22261479 DNS,Host和VPN三者到底是什么关系? 上个月买了一台极...

数据结构学的到底是什么,和算法的关系

本人乃一个数据痴迷者,在计算机的道路上,也是一个数据结构的痴迷者,现在大学里面和同学搞开发也痴迷于数据库,我就我个人的理解给你谈一谈: 首先,数据结构是一门计算机语言学的基础学科,它不属于任何一...
  • iver99
  • iver99
  • 2012年02月08日 20:41
  • 961

Zend与PHP之间到底是什么关系

Zend与PHP之间是什么关系 What is Zend's relationship with PHP? 每次看到PHP虚拟机中出现zend、zendvar之类的都很困惑,特意查了一下......

内核与ramdisk到底是什么关系?

内核,initrd,ramdisk,关系,用途 分类: linux操作系统原理2011-03-07 19:26 399人阅读 评论(0) 收藏 举报 转自:http://www...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:apache和tomcat到底是神马关系
举报原因:
原因补充:

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