`
jimmy.shine
  • 浏览: 393037 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Tomcat与apache的连接

阅读更多

上次做的项目,使用的是apache做为前台服务器,接收浏览器发送过来的请求,通过jk连接转发给后台的tomcat处理。
一直不明白布署的那位仁兄为什么要这么做。我曾经问过这位仁兄,其说看过一些文章,说tomcat对于静态页面的处理效率不高,而apache的处理效率比较高,所以就这么做。而jk连接器的配置就是从网上抄了一个过来。
原来服务器一直相安无事,这个系统是给国内的一个比较有名的投资公司做的。前几天,对方突然要求我们开发一个相册的功能,来处理集体活动的照片。
于是按照要求写了一个。布署上去后,前一天倒还无事,原来设计中是一页只显示了12张照片的缩略图。后来对方要求多加一点,于是改到了48,结果问题来了,经常是莫名其妙的,服务器就处理不了请求了,查看了一个程序,确认不是程序的问题。
最让人觉得费解的是居然没有发现服务器有Crash的日志,也就是说服务器本身并没有crash掉。于是不解。郁闷了半天,查找了服务器上是否有病毒,(前一次就是有病毒,导致服务器效率奇低,痛恨使用Windows来布署服务器),没有发现系统进程中有可疑的进程。
于是打电话与那位仁兄交流,那位仁兄的意见还是将静态的东西交由Apache来处理,说可以将相册的图片的显示交由静态服务器来做。
在详细询问了jk的配置的时候,突然发现了对于tomcat的最大连接数配置的是150,也就是说tomcat同时能够处理150个请求,而jk的连接数也只有150,也就是说jk也只可以转发150个讨还到tomcat,这一点倒是吻合。前台的apache的倒是可以处理挺多的请求的。于是细问了这个仁兄一句, 为何这样配置?仁兄的答案是都是这样配置的。
于是细一想,不对啊,我现在如果请求一个相册中的照片,即打开一个相册,我至少就会提交了1+48=49个请求,如果再同时多点击几次,不是一下就到达了150吗?难怪会出现不响应的现象。一想,应当是apache接收了请求后,想通过jk交由tomcat可是后二者的连接数都已经满了,不处理完之前无法处理,所以就造成了这种现象出现了。
于是马上加班改,将图片交由前台的apache直接管理,幸好是图片没有权限的控制,是大家都能看的。不会出现权限的问题。

最后得出一个结论,在配置这些之前,一定要搞清楚原理啊。盲目的抄了网上的东西,或者是照本宣科,套用一句俗气的电影台词:“出来混,早晚都要还的!”

分享到:
评论
8 楼 lxiao168 2007-05-10  
好帖,頂
7 楼 jimmy.shine 2007-05-09  
回quaff:
如果是如你所想,也是可以的,使用ajax的方式去处理,不过这与apache就没有任何关系了,只是在浏览器没有显示出真正的url而已。
6 楼 quaff 2007-05-09  
jimmy.shine 写道
回quaff:
明白你所说的实现方式。其实apache与tomcat服务器通过jk连接的道理很简单,就是jk作为一个分发器,根据定义的规则将部分请求发送到tomcat服务器。
而目前就我理解来说,匹配方式就是通过对于请求的url进行解析。说穿了,就是解析字符串,要想解决你所说的权限的问题,就要如何在url的匹配解析层次上进行分发。

现在要的就是url的pattern是一样的,所以利用url的匹配是做不到的,一般情况下apache找不到资源就是返回404,不知道有没有什么方法可以让apache找不到这个资源的时候转发给tomcat
5 楼 jimmy.shine 2007-05-09  
回quaff:
明白你所说的实现方式。其实apache与tomcat服务器通过jk连接的道理很简单,就是jk作为一个分发器,根据定义的规则将部分请求发送到tomcat服务器。
而目前就我理解来说,匹配方式就是通过对于请求的url进行解析。说穿了,就是解析字符串,要想解决你所说的权限的问题,就要如何在url的匹配解析层次上进行分发。
4 楼 quaff 2007-05-08  
jimmy.shine 写道
回quaff
apache本身是一个表态的服务器,是无法处理权限的问题的,如果是5.5以上的tomcat服务器,本身将静态的显示交由tomcat去处理也是可以的,因为5.5已经引入了新的机制,在处理静态图片的效率高于5.0 70%-80%;
所有的动态权限的处理都逃不开要实施一个拦截过程。

我知道apache是无法处理权限问题,我想这样,把a和b放到pic文件夹,这个文件夹通过apache来访问,c不放到这个文件夹里面,但是访问的路径是一样的,也是/pic/c.jpg,这个要交给tomcat来处理,最终想要的就是同一个pattern下的url有的是apache服务有的是tomcat服务,不知道怎么能做到这样
3 楼 jimmy.shine 2007-05-08  
回quaff
apache本身是一个表态的服务器,是无法处理权限的问题的,如果是5.5以上的tomcat服务器,本身将静态的显示交由tomcat去处理也是可以的,因为5.5已经引入了新的机制,在处理静态图片的效率高于5.0 70%-80%;
所有的动态权限的处理都逃不开要实施一个拦截过程。
2 楼 quaff 2007-05-08  
<br/>
<strong>jimmy.shine 写道:</strong><br/>
<div class='quote_div'>
<p>上次做的项目,使用的是apache做为前台服务器,接收浏览器发送过来的请求,通过jk连接转发给后台的tomcat处理。<br/>
一直不明白布署的那位仁兄为什么要这么做。我曾经问过这位仁兄,其说看过一些文章,说tomcat对于静态页面的处理效率不高,而apache的处理效率比较高,所以就这么做。而jk连接器的配置就是从网上抄了一个过来。<br/>
原来服务器一直相安无事,这个系统是给国内的一个比较有名的投资公司做的。前几天,对方突然要求我们开发一个相册的功能,来处理集体活动的照片。<br/>
于是按照要求写了一个。布署上去后,前一天倒还无事,原来设计中是一页只显示了12张照片的缩略图。后来对方要求多加一点,于是改到了48,结果问题来了,经常是莫名其妙的,服务器就处理不了请求了,查看了一个程序,确认不是程序的问题。<br/>
最让人觉得费解的是居然没有发现服务器有Crash的日志,也就是说服务器本身并没有crash掉。于是不解。郁闷了半天,查找了服务器上是否有病毒,(前一次就是有病毒,导致服务器效率奇低,痛恨使用Windows来布署服务器),没有发现系统进程中有可疑的进程。<br/>
于是打电话与那位仁兄交流,那位仁兄的意见还是将静态的东西交由Apache来处理,说可以将相册的图片的显示交由静态服务器来做。<br/>
在详细询问了jk的配置的时候,突然发现了对于tomcat的最大连接数配置的是150,也就是说tomcat同时能够处理150个请求,而jk的连接数也只有150,也就是说jk也只可以转发150个讨还到tomcat,这一点倒是吻合。前台的apache的倒是可以处理挺多的请求的。于是细问了这个仁兄一句, 为何这样配置?仁兄的答案是都是这样配置的。<br/>
于是细一想,不对啊,我现在如果请求一个相册中的照片,即打开一个相册,我至少就会提交了1+48=49个请求,如果再同时多点击几次,不是一下就到达了150吗?难怪会出现不响应的现象。一想,应当是apache接收了请求后,想通过jk交由tomcat可是后二者的连接数都已经满了,不处理完之前无法处理,所以就造成了这种现象出现了。<br/>
于是马上加班改,将图片交由前台的apache直接管理,幸好是图片没有权限的控制,是大家都能看的。不会出现权限的问题。<br/>
<br/>
最后得出一个结论,在配置这些之前,一定要搞清楚原理啊。盲目的抄了网上的东西,或者是照本宣科,套用一句俗气的电影台词:“出来混,早晚都要还的!”</p>
</div>
<br/>
如果图片有权限问题怎么处理?比如有图片a.jpg,b.jpg,c.jpg,其中a和b是公开的,c是要验证权限的,他们访问的url必须一致/pic/a.jpg, /pic/b.jpg, /pic/c.jpg,我希望a和b是交给apache来处理,c让tomcat来处理,不知道有没有办法让apache在找不到c.jpg的情况下再转发给tomcat?
1 楼 lijie250 2007-05-07  
其实我对这个问题也一直没想通,总感觉这种连接的效率不高,其实APACHE和TOMCAT配合还有其他方式,我在一本书上看到了比这个好的方法!不过今天看了你的文章还是学了点,谢谢!

相关推荐

    tomcat+apache 6.0集成打包

    这个压缩包包含了Apache 2.2.8和Tomcat 6.0.16这两个特定版本,以及JK模块(即mod_jk)的2.0.55版,它们是Apache与Tomcat间通信的关键组件。JK模块是Apache的负载均衡和反向代理模块,使得Apache能够处理静态内容,...

    Tomcat与Apache服务器集成

    **标题:“Tomcat与Apache服务器集成”** 在Web开发领域,Apache HTTP Server(简称Apache)和Tomcat都是广泛使用的服务器软件。Apache以其稳定性和灵活性著称,主要用于处理静态内容;而Tomcat则是一个轻量级的...

    Tomcat+Apache+JK集群

    【标题】"Tomcat+Apache+JK集群"指的是在Web服务器架构中,通过Apache HTTP Server与Tomcat应用服务器结合,并利用JK模块实现负载均衡和高可用性的集群部署方式。这种方式可以提升系统的性能和稳定性,应对高并发...

    Apache tomcat6.0 java开发工具 Apache tomcat6.0 Apache tomcat6.0

    1. **安装与配置**:下载Apache Tomcat 6.0的安装包,解压到指定目录,配置环境变量`CATALINA_HOME`,确保服务器能正确启动。 2. **部署Web应用**:将WAR文件(Web应用程序的归档文件)拷贝到`webapps`目录下,...

    windows下整合apache和tomcat服务器的方法

    `workers.properties`文件定义了Apache和Tomcat之间的连接设置。在这个文件中,你需要指定Tomcat的安装路径、Java的安装路径以及每个worker(代表一个Tomcat实例)的详细配置,包括工作端口、主机名和类型。例如: ...

    tomcat+apache集群配置实例

    【标题】:“Tomcat+Apache集群配置实例” 在IT领域,服务器集群是一种常见的高可用性和负载均衡解决方案。这里我们将深入探讨如何配置一个基于Tomcat和Apache的集群环境,以提高Web应用的服务质量和应对高流量场景...

    tomcat与Apache配置

    4. **配置mod_jk的worker.properties**:这是一个文本文件,包含了Apache与Tomcat之间的详细连接信息,例如Tomcat服务器的IP地址、端口、工作线程池大小等。 5. **重启服务**:完成上述配置后,需要重启Apache和...

    apache-tomcat-7.0.75.zip

    不过可以通过插件支持php,还可以与Tomcat连通(单向Apache连接Tomcat,就是说通过Apache可以访问Tomcat资源。反之不然)。Apache只支持静态网页,但像asp,php,cgi,jsp等动态网页就需要Tomcat来处理。 Tomcat是由Apache...

    Apache HttpServer 2.4.X 和tomcat连接器

    Apache HttpServer 2.4.X 与 Tomcat 连接器是将 Apache HTTP 服务器与 Tomcat 应用服务器集成的关键组件。这个连接器,通常称为 mod_jk 或 ajp (Apache Jserv Protocol),允许两个服务协同工作,使得 Apache 能够...

    apache与tomcat负载集群的实现

    在Apache与Tomcat的组合中,Apache可以作为反向代理服务器,根据预设的策略(如轮询、最少连接数或IP哈希)将请求分发到不同的Tomcat实例。这样,当某个Tomcat实例负载过高时,其他实例可以接手处理,提高整体系统的...

    apache-tomcat-6.0.29

    apache是普通服务器 本身只支持html即普通网页 不过可以通过插件支持php 还可以与Tomcat连通 单向Apache连接Tomcat 就是说通过Apache可以访问Tomcat资源 反之不然 Apache只支持静态网页 但像asp php cgi jsp等动态...

    apache-tomcat-10.0.16-windows-x64.zip

    不仅可以通过插件支持php,还可以与Tomcat连通(单向Apache连接Tomcat,就是说通过Apache可以访问Tomcat资源。反之不然)。Apache只支持静态网页,但像php,cgi,jsp等动态网页就需要Tomcat来处理。 Tomcat是由Apache软件...

    Apache HTTP Server 与 Tomcat 的连接方式介绍

    Apache的mod_jk模块是Apache与Tomcat之间的常用连接桥梁。它实现了JK(Java Kona)协议,负责将HTTP请求转发到Tomcat实例,同时将响应返回给客户端。通过配置mod_jk的worker.properties文件来定义Tomcat实例,以及...

    tomcat+apache整合插件大全及整合方法

    下面将详细讲解如何进行Tomcat与Apache的整合,以及涉及到的主要插件和整合方法。 首先,我们需要了解整合过程中用到的关键组件: 1. **Apache Portable Runtime (APR)**:这是一个由Apache软件基金会开发的库,...

    Apache与Tomcat的几种连接方式介绍

    Apache与Tomcat的几种连接方式介绍 Apache与Tomcat的连接方式是Web开发中非常重要的一部分。Tomcat本身已经提供了HTTP服务,该服务默认的端口是8080,但我们仍然需要引入Apache或其他专门的HTTP服务器来提高静态...

    apache-tomcat-7.0.57

    不过可以通过插件支持php,还可以与Tomcat连通(单向Apache连接Tomcat,就是说通过Apache可以访问Tomcat资源。反之不然)。Apache只支持静态网页,但像php,cgi,jsp等动态网页就需要Tomcat来处理。 Tomcat是由Apache软件...

    整合APACHE和TOMCAT的连接器

    整合APACHE和TOMCAT的连接器。Tomcat可以独立作为Web服务器运行,但是Tomcat的Web功能远没有Apache强大。在实际应用中,通过mod_jdk连接器(Connectors)将Apache和Tomcat整合在一起。通过连接器调用Tomcat服务的...

    Apache HTTP Server 与 Tomcat 的三种连接方式介绍

    本文将详细介绍Apache HTTP Server与Tomcat的三种连接方式:独立模式、代理模式和集成模式。 一、独立模式 在独立模式下,Apache和Tomcat作为两个独立的服务器运行。Apache主要负责处理静态内容,如HTML、CSS、...

Global site tag (gtag.js) - Google Analytics