apache配置故障总结

在服务器上配置apache+tomcat 运行环境,这种搭配,网上的文章非常全,但我这次的故障不是这个组合的设置问题,而是apache本身的设置问题。

一般的设置过程如下

1)apache加virtualhost,通过Proxy与tomcat连通

2)tomcat会标记jvmRoute,多个结点使用session时,还会打开Cluster。

3)在apache中增加<Proxy balancer://mycluster>,并对应好tomcat中的jvmRoute。

以上设置好,系统就会正常工作,但如果只是apache,只设置第一步,并用http转接一样可以正常工作。

但我遇到的是另一个问题,因为apache下运行多个virtualHost,因另一个程序测试所以打开了expires_module 模块,这是用于缓存控制的,一般还会配置<IfModule mod_expires.c>以识别多种文件类型。

这个缓存功能打开后,就让virtualhost的运行呈现另一种状态

1)在客户端的表现,用户A登录再退出后,重新打开时会发现仍处于登录状态,如果之后有另一用户B登录时,在之前用户A使用过的功能里看到的仍是A的信息。感觉就是session完全乱了,但这时强制刷新一下,用户信息就以最后一个登录的用户为准。

2)服务器virtualHost中有ProxyPassReverseCookieDomain和ProxyPassReverseCookiePath属性,这两个属性怎样设置都不会影响到 1 中客户端的表现。apache因为缓存设置,基本可以不像virtualHost继续请求。

由以上的表现可以看出,virtualHost本身是做代理的,用于访问多个站点,但一旦启用缓存模块,virtualHost就变成了缓存服务器,除非用户强制请求新版本的内容,否则apache始终使用缓存,而这个缓存的判断过程还会因浏览器的不同有一定差异(IE在“始终取最新版本”设置时,有时会正常加载,firefox即使重启浏览器也取不到新版本,只能清除缓存,其它浏览器未测试),这时不只是session,包括表单字段都是有缓存效果的。

至于缓存模块的详细设置我还未仔细研究,也欢迎大家拍砖,但对于不熟悉或新手,本人强烈建议不要使用缓存模块,这种缓存已经包含对动态请求内容的缓存。

故障追踪和恢复过程:

从客户反馈(用户登录信息混乱)--检查程序本身逻辑--virtualHost的相关设置--apache,tomcat(session,cookie设置)--最终定位到expires_module .

唯一值得安慰的是,单独运行tomcat程序时,程序表现完全正常,不论用户怎么操作都没有问题,所以很快定位到apache,但从virtualHost到expires_module ,则是用一个干净的apache重新配置才发现的。

最后,希望配置apache+tomcat的朋友们能从这个故障中得到帮助,也欢迎高手多提供有关apache中缓存模块的相关知识。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值