apache+tomcat折腾之夜

折腾了1天,终于把Apache与Tomcat连上了。总结下,重点是三个地方折腾了不少时间。


一、刚开始不知道如何连接,百度N次,学到了三种方法:mod_jk方法、ProxyPass方法和ProxyAjp,其中第一种方法比较灵活,可以按文件类型转发请求,其它两个好象只能按目录转发。这三种方法主要用于配置负载均衡。其配置方法这里不再冗述,网上大把文章,例如:http://www.ibm.com/developerworks/cn/opensource/os-lo-apache-tomcat/ 


二、worker.ajp13.host=localhost这地方老出错,后改成127.0.0.1完事。

这地方折腾了最长,一直不知道为什么连不了,后来是查看错误日志mod_jk.log文件,才发现它连接localhost时居然是在连接192.0.60.0这个IP地址。我物理机器的IP地址是以172开头的,跟它搭不上边。

我查了hosts文件及各个配置文件,现在还没有查出来是哪个地方把localhost这个机器名映射到192.0.60.0这个IP地址,而且这个被映射的IP地址还会变,地址中的60后来变成了120.有时间好好研究一下它的来龙去脉。

三、Apache的根路径(或虚拟目录)要与Tomcat的根路径一致。否则Apache将一个URL转发给Tomcat后会找不到资源。

这个问题主要是被网上好多文章总是误导了,说什么jdk路径不对等等。这个解决办法是我几乎试遍了百度头几页所有方法之后,快绝望时静下心来思考时发现的。因为我能够确认Apache已经把访问请求转发给了Tomcat,并且Tomcat却返回了一个404消息给Apache,Apache再把404消息当作一个正常的响应回送给我浏览器。所有Apache的错误日志里没有错误,但Tomcat的错误日志里却有。


为什么会出错呢?细想之后原因如下。
假如Apache的根路径(或虚拟目录,也就是我们网站文件所在的目录)对应的物理路径为a,Tomcat的根目录对应的物理路径b。当Apache收到一个uri为1.jsp请求时,这个uri对应的物理路径是a/1.jsp,Apache将uri转发给Tomcat,而Tomcat接收到的Uri也会是1.jsp,于是Tomcat会从它的根目录也就是物理目录b下去寻找1.jsp,也就是寻找b/1.jsp路径,所以就出现了404错误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值