优化apache/tomcat配置

apache|优化

近日不得不越那个代疱地钻研发布和发布系统管理和测试的相关问题。有充分证据表明现得绝大多数的apache/tomcat配置中,apache根本就是摆设,所有的响应负担,包括静态多媒体文件实际上是由tomcat完成,而tomcat实际上是效率相当低的,大约是apache的十分之一。因此,没有达到集成两者的目的;但在优化配置本地基本成功,打算在网上测试服务器实际试行时,却碰到了"martix现象":无可解释的不可重复的异常表现。
看来,在tomcat/apache的配合上要动真格的,今天写的那份文章提示了一个现实的问题,apache根本就没有作用,更严重的是,107和106上不匹配,107上甚至不能重复出106的配合。由于图片的量会不少,所以这是一个非常现实的问题。我想,目前唯一的办法就是下载到本地,参考可能参考的资料完整地进行一次配置。毕竟,现在的配置是几年前的,而且不是由我进行的。这里如果处理OK了,那么相信对于提供系统的处理能力和处理的速度,是大有益处的。......经过一天的奋斗,主要的时间在于重新在本地设备上安装所有相关的软件,包括本地的DNS服务器,没有这个没有办法测试虚拟主机解释。所以主要还是在晚上测试,深入钻研apache/tomcat的配合,基本搞清楚了两者的关系,确认原来的配置方式只是"表面上成功",实际上完全由tomcat完成所有应答,apache只是聋子的耳朵——摆设。但是在本地完成所有测试,原封不动地准备在网上进行更新设置时,再次碰到"Matrix现象":出现了莫名其妙的差异;无法解释,自然消失。

第一个差异就是,按照最新的理解,apache解释的多媒体路径与tomcat解释的页面路径是不同的,因此,必须在页面上修整两者,否则图片和多媒体就会因为路径不一而不能获取;而在原来设置中由于完全由tomcat解释,所以两者是相同的。这个设想的实验在本地非常成功,但是在网上,就完全相反,路径解释无论如何都是对的——问题在于我在本地已经测试并修改了这个路径解释:老天爷,到底要那一个呢?而实际上,worker.properties的过滤是完全一样的。这点如果还不算太怪的话,那么第二个差异就更怪了。

首先是使用原来的httpd.conf总是在虚拟主机DocumentRoot上被禁止访问,在强行使用本地设置文件置换(由于路径一样,问题倒不算大)后就变得可以了。这条权作是未知的某处错误存在,那么随后就怪事连连了:无论是那个虚拟主机,统统只是解释到第一个虚拟主机的目录,换言之,虚拟主机完,全失效。把那个设置文件拿回本地测试却是一切正常。随后再次到网上测试,这次却是跟着正常了......原因不明,唯一的可能......似乎是firefox缓存一类......总之是笔糊涂帐。真是莫名其妙。但前者的图片必须改由apache解释是确证无疑的,否则,系统性能会过大消耗,静态大文件的处理,不是tomcat的长处。

我们这个世界是一个物质物理世界,它的基本特征就是同质可重复性,整个现代科学都是建筑在这个基础上的。如果一旦碰到同质可重复性不能成立时,我的感觉就是俺是不是生活在Matrix里头了。

续:今天在本地的测试得到了与远端同样的结果,至少看来重新象一个物质世界了! 目前唯一可能的解释,(不过也是解释得非常牵强的),就是firefox对于浏览过的网站或者出于加速的原因,有一些与过往的浏览器有很大不同的缓存策略。在以后的操作中要注意这一点。

      这个结构许多人已经熟悉用了,而且在网上也有大量的howto,不过最关键的文件worker.properties设置就未必正确,如:

info=Ajp13 forwarding over sockettomcatId=localhost:8009[uri:/jsp-examples/*][shm:]disabled=1

如果象上面那样uri:/jsp-examples/*的话,相信,apache屁用没有,根本上就是tomcat承受了一切的负担。 显然,如果是这样配置,系统承受的负担,我指的是java 服务器,将是大大超出应有的负荷的。应该修改上面的配置,让apache承但,主要是html和图片以及多媒体的下载任务,而不是tomcat,估计可以大大提供这个搭配系统的负载能力。

......前天写到这里,忽然觉得这个配置颇为眼熟,赶快去查一下,果然现在的项目中的设置就是这个样子的,但是进一步的测试就让我有点入歧途,一会儿证明是那样,一会儿就表明是那样。软件这东西如果缺乏逻辑必然的联系,人是没有什么好干的。无论如何,继续上面的思路,象上面的配置,表明所有/jsp-examples/*次级目录下的东东都是交由tomcat处理;Apache并没有相应的工作。正确的配置应该是:[uri:/jsp-examples/*.jsp][uri:/jsp-examples/servlet/*]

如果使用了如struts,大概还需要增加*.action这样的后缀。这样,非此类型的文件将会交给apache。而这样的设置:[uri:/*]有极大的危险,将意味着所有的请求全部由tomcat响应;不过,看来ajp13作了预防性措施,事实上,这时侯ajp13把所有请求扔进了下水道,什么也不干。负作用就是虚拟主机的根目录我无论如何设不出它能够直接识别index.jsp引导。只能使用html代替,不过,这也没有什么大不了的,如果是小型的首页,可以就地转向,而假如是大型的首页,本身就会定时转换输出为html页面。显然,在这种结构中使用通配符是最容易配出运行框架的,却也是错误的。
    把Apache与tomcat合并起来后,还得到了一个意外的收获,就是可以使用连接形式把一些主要的非jsp/servlet文件由apache在目录以外解释,从而简化了开发目录的管理。在实际的开发过程中,如果规划不佳,不多久就会积累了大量的无用的图片文件,工作目录动不动超过一个G是非常正常的;如果开放部分如允许用户上载文件之类,更是大得惊人,但是由于tomcat不能解释symbolic链接,这样就不能把这些图片移到目录以外,只能是使用全url才有可能实现,而把在合理配置Apache/tomcat后,尽管tomcat不能解释链接符号,但Apache能够,这样,就把上面的问题解决了。

时间: 2024-09-17 04:55:39

优化apache/tomcat配置的相关文章

web-求助 apache+tomcat配置域名

问题描述 求助 apache+tomcat配置域名 各位大神求助目前用3个tomcat 分别部署3个项目通过apache进行整合,其中3个web工程是web项目的3个子模块目前整合方法如下:#加载mod_jk Module LoadModule jk_module modules/mod_jk.so #指定 workers.properties文件路径 JkWorkersFile conf/workers.properties JkMountFile conf/uriworkermap.prop

Linux下jsp环境:apache,tomcat配置

apache|js Linux下jsp开发环境,apache,tomcat服务器配置过程: (特别注明:本文内容均参考于互联网,经过个人实践而总结,若配置中遇到问题请联系我,可能写的时候漏掉了某些地方,感谢网上前辈的经验,希望更多的实践经验得以共享) 1.操作系统 RedHat Linux 9.0 2.所需软件 Apache 2.0.54 下载地址 http://apache.freelamp.com/httpd 下载该文件httpd-2.0.54.tar.gz Tomcat5.5.9 下载地址

mac系统安装apache tomcat配置方法图文详解

  tomcat无法取访问appache资源. appache只支持静态网页,但像asp,php,cgi,jsp等动态就需要tomcat来处理.对于apache tomcat 估计很多童鞋都会,那么今天就简单说下在mac上进行tomcat的安装: 1.下载Tomcat mac下载zip和tar.gz都行,我下载的是tar.gz 2.压缩之后直接拷贝到资源库中,压缩后的文件夹名称为Tomcat8,具体位置如下: 3.打开终端,输入以下命令Library/Tomcat8/bin/startup.sh

apache Tomcat 配置账户管理项目

介绍: 默认情况下我们会在tomcat中部署项目,一般情况我们会用eclipse 直接部署到tomcat进行调试,但是在正式的开发环境中会有很多不方便时候,项目有没有启动或者有没有假死的情况,更本不能判断到底项目有没有启动,那么我们就开配置一下tomcat用户名和密码,这样就可以登录tomcat后台,查看当前项目是否启动,并且可以管理启动和停止等等的操作功能 作用: 1.管理项目启动停止 2.动态部署项目 3.查看tomcat内存情况 等等功能 一.下载tomcat地址,自行选择一个版本,本次演

如何利用Apache+Tomcat配置JSP开发环境?

apache|js 安装J2SDK 不管哪种方案,在安装和配置JSP引擎之前必须先完成J2SDK的安装. 1.安装J2SDK     在Windows下,直接运行下载的j2sdk-1_4_1_01-windows-i586.exe文件,根据安装向导安装到一个目录,例如安装到c:\j2sdk 1.4.1: 2. 添加环境变量  (1)如果你的操作系统是Win 98,可以用记事本直接编辑Autoexec.bat,添加下面命令行:     PATH=%PATH%;c:\j2sdk1.4.1\bin  

从Apache Tomcat迁移到WebSphere Application Server Liberty Profile

简介 Apache Tomcat 是一个 HTTP 服务器和 servlet 容器,常用于简单的 Web 应用程序,以及使用不需要完整的 Java EE 服务器的框架的应用程序.然而,用户经常会发现,当对 Apache Tomcat 有更多需求时,其最初的简单性就会变得复杂且不实用. 例如,也许 Apache Tomcat 安装的占用空间会变得太大,因为您需要添加第三方库来提供所需的功能.或者,服务器的启动时间也可能是一个问题,因为对 server.xml 文件的任何配置更改都需要重新启动 Ap

从Apache Tomcat迁移到IBM WebSphere Application Server的说明

Apache Tomcat 是一个 HTTP 服务器和 servlet 容器,常用于简单的 Web 应用程序,以及使用不需要完整的 Java EE 服务器的框架的应用程序.然而,用户经常会发现,当对 Apache Tomcat 有更多需求时,其最初的简单性就会变得复杂且不实用. 例如,也许 Apache Tomcat 安装的占用空间会变得太大,因为您需要添加第三方库来提供所需的功能.或者,服务器的启动时间也可能是一个问题,因为对 server.xml 文件的任何配置更改都需要重新启动 Apach

tomcat配置及优化

tomcat的内存使用配置,最大连接数配置. 如何修改配置呢,在/tomcat的/bin/下面有个脚本文件catailna.sh. 如果 windows 是bat设置tomcat的使用内存,其实就是设置jvm的使用参数. 一.Tomcat内存优化 Tomcat内存优化主要是对 tomcat 启动参数优化,我们可以在 tomcat 的启动脚本 catalina.sh 中设置 JAVA_OPTS 参数. 1.JAVA_OPTS参数说明 Java代码 -server 启用jdk 的 server 版:

Tomcat配置SSL nginx+tomcat配置https实例及优化过程

Tomcat配置SSL,使用openssl制作证书 制作证书以及Tomcat配置     搭建openssl环境,下载openssl并设置环境变量方便命令行的使用:    修改openssl配置文件,设置dir目录,如设置dir=e:/temp/openssl_ca,然后根据配置文件分别建立子目录:certs.crl.newcerts.private分别用来存放签发的证书.吊销的证书.证书申请.私钥:         cd /d e:\temp\openssl_ca         mkdir