resin apache问题

前几天修改apache配置引起的apache连接resin问题。详细现象如下:

停止、开启apache时,分别在apache/logs/error_log中打印如下两行。

[notice] caught SIGTERM, shutting down
[notice] Apache/2.2.9 (Unix) Resin/3.1.6 configured -- resuming normal operations

 

问题发生过程:

  • 修改配置之前apache+resin运行很正常。apache运行时间较长了(两个月以上)
  • 修改apache配置conf/httpd.conf,重启apache,出现503错误。估计需要重启resin,重启后,还是一样
  • 恢复原来的apache配置,重启,还是一样的错误,访问resin的8080端口,服务正常
  • 查找很久问题.........  网上也看到一些这种问题,没有找到答案,有人建议reboot机器,信以为真,结果还是有问题
  • 重新换一个apache,问题依旧。去掉resin,直接使用apache,服务正常。

到此:apache单独使用正常!resin单独使用正常!问题应该出现在apache和resin的连接模块上。

  • 重新编译连接模块,还是有问题
  • 换一个新版本的resin,编译连接模块,还是有问题。到这里很是郁闷了!
  • 仔细回想对服务器做过的修改,查看apache的80端口开着,resin的6800端口也开着。突然想起前端时间对/etc/hosts 做了一些修改,将127.0.0.1               localhost.localdomain localhost   换成了外网地址。顿悟!再查看resin的6800是绑定在127.0.0.1上。在本机telnet 本机的外网地址 6800,果然被拒绝!问题总算找到:
    问题
    resin的6800绑定在127.0.0.1上,而apache连接的是的外网地址的6800
     将/etc/hosts修改回127.0.0.1,重启apache,访问,问题果然解决。
  • 但是另机台机器的/etc/hosts也是使用的外网地址,为什么就行呢?这几天机器的resin的6800也是绑定在127.0.0.1上,telnet 本机的外网地址 6800也是被拒绝!在同事的查看下,在apache的httpd.conf中
    apache resin配置 写道
    LoadModule caucho_module /app/soft/httpd-2.2.9/modules/mod_caucho.so

    ResinConfigServer localhost 6800
    CauchoConfigCacheDirectory /tmp
    CauchoStatus yes
     倒数第二行的/tmp目录藏着秘密。里面有个文件:localhost_6800
    • 这个是配置的cache文件,删除了这个文件,再重启这机台机器,就出现无法连接6800的现象。将/etc/hosts改回127.0.0.1,重启apache,问题解决

这个说明apache确实使用的是这个缓存文件。

 

 

问题重现:(原来的/etc/hosts还是127.0.0.1)【正常的机器】

  1. 启动resin、启动apache,apache连接127.0.0.1 6800,成功!生成缓存文件localhost_6800
  2. 修改/etc/hosts
  3. 修改apache的httpd.conf,重启apche,apache使用/tmp/localhost_6800,所有就没用外网地址的6800,连接成功!服务正常

问题重现:(原来的/etc/hosts还是127.0.0.1)【出现503错误的机器】

  1. 启动resin、启动apache,apache连接127.0.0.1 6800,成功!生成缓存文件localhost_6800
  2. 修改/etc/hosts
  3. 修改apache的httpd.conf,重启apche,apache没有使用/tmp/localhost_6800(可能是被修改、可能apache要更新这个文件,总之apache没有使用这个文件) 。apache连接外网地址的6800,连接失败!出现我遇到的503错误。

你可能感兴趣的:(工作,Apache,Unix,Cache)