我已经进行了几个月的工作,但是今天我重新开机,但出现故障。抱歉,这有点详细和具体,但是我迫切需要帮助。
我有apache-2.2和两个tomcat-6服务器(仅从两个单独的文件夹运行)。我没有任何http连接器,但是我在每个服务器的端口8009和8010上运行了一个ajp连接器。启动时,两个tomcats都报告该连接器正在运行,并且似乎没有任何问题:
INFO: JK: ajp13 listening on /0.0.0.0:8009
...
INFO: JK: ajp13 listening on /0.0.0.0:8010
Run Code Online (Sandbox Code Playgroud)
我有理由确定我的工作人员和apache配置设置正确。我可以很好地到达8009上的连接器,一点问题都没有,但是当我尝试8010时apache会给我503。检查日志(mod_jk.log)它说:
jk_open_socket::jk_connect.c (594): connect to 127.0.0.1:8010 failed (errno=13)
ajp_connect_to_endpoint::jk_ajp_common.c (922): Failed opening socket to (127.0.0.1:8010) (errno=13)
ajp_send_request::jk_ajp_common.c (1507): (eis) connecting to backend failed. Tomcat is probably not started or is listening on the wrong port (errno=13)
Run Code Online (Sandbox Code Playgroud)
但是我不明白的是,如果我对该端口执行简单的telnet并发送GET:
# telnet 127.0.0.1 8010
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
GET
Connection closed by foreign host.
Run Code Online (Sandbox Code Playgroud)
命中了正确的tomcat(预期错误):
Oct 25, 2011 6:17:10 PM org.apache.jk.common.MsgAjp processHeader
SEVERE: BAD packet signature 18245
Oct 25, 2011 6:17:10 PM org.apache.jk.common.ChannelSocket processConnection
SEVERE: Error, processing connection
Run Code Online (Sandbox Code Playgroud)
那么,为什么Apache无法达到目标呢?无论我是否是超级用户,telnet都可以工作。可能会发生什么?我完全迷住了。
而且我尝试重新启动apache和tomcat,并且没有任何变化。谢谢参观。
EDIT-1:对此的快速更新...我添加了一个http连接器,它工作正常,但ajp连接器仍然失败。
编辑2:这是每个请求的配置详细信息...
worker.properties:
worker.list=service1,service2
worker.service1.type=ajp13
worker.service1.host=127.0.0.1
worker.service1.port=8009
worker.service2.type=ajp13
worker.service2.host=127.0.0.1
worker.service2.port=8010
Run Code Online (Sandbox Code Playgroud)
httpd.conf(我同时看到jkmount和JkMount ...大写重要吗?):
JkMount /s1 service1
JkMount /s1/* service1
JkMount /s2 service2
JkMount /s2/* service2
Run Code Online (Sandbox Code Playgroud)
service1的server.xml:
<Connector port="8009" protocol="AJP/1.3" />
Run Code Online (Sandbox Code Playgroud)
service2的server.xml:
<Connector port="8010" protocol="AJP/1.3" />
Run Code Online (Sandbox Code Playgroud)
我想就是这样。
您的系统上有SELinux吗?你能试一下吗:
setenforce 0
Run Code Online (Sandbox Code Playgroud)
这可能会阻止apache进程连接。另外,检查您的防火墙规则...
| 归档时间: |
|
| 查看次数: |
6587 次 |
| 最近记录: |