Windows下Apache+Tomcat+jsp+php的服务器整合配置出现Service Unavailable错误
Service Unavailable
The server is temporarily unable to service your request due to maintenance downtime or capacity problems.
Please try again later.
1.JDK (安装目录 L:/Java)
2.Apache2.4 (安装目录 J:/Apache24)
3.tomcat 8.0.17 (安装目录L:\service\tomcat8)
4.tomcat-connectors-1.2.39-windows-i386-httpd-2.4.x
5.PHP
网站根目录:J:\PHPWeb
系统环境Win7
由于80端口被IIS占用,Apache用8082端口,tomcat用8080端口
按照这里提供的说明
http://www.cnblogs.com/zyw-205520/p/3603262.html
配置完成以后,tomcat 能单独使用,能访问jsp页面;
apache也能单独使用,能访问html,php页面;
但是却不能通过Apache转到tomcat访问JSP页面,出现错误404,
找不到该文件。
我是这样操作的:建立项目test,test文件夹下有一个test1.html,test2.jsp两个
文件,将test文件夹一份放到L:\service\tomcat8\webapps下
另外copy一份放到网站根目录:J:\PHPWeb下。
浏览器上能访问
http://localhost:8082/test1/test1.html
http://localhost:8080/test1/test2.jsp
http://localhost:8080/test1/test1.html
但是http://localhost:8082/test1/test2.jsp却出现错误,
Service Unavailable
The server is temporarily unable to service your request due to maintenance downtime or capacity problems.
Please try again later.
请问这是什么原因?如何处理?
以下是一些关键配置文件部分内容:
1、Apache的配置文件httpd.conf
Listen 8082
LoadModule jk_module "J:/Apache24/modules/mod_jk.so"
JkLogFile "L:/service/tomcat8/logs/mod_jk2.log"
JkWorkersFile "L:/ConnApaTom/workers.properties"
DocumentRoot J:/PHPWeb
DirectoryIndex index.html index.htm index.jsp index.action
JkMount /*WEB-INF ajp13
JkMount /*j_spring_security_check ajp13
JkMount /*.action ajp13
JkMount /servlet/* ajp13
JkMount /*.jsp ajp13
JkMount /*.do ajp13
JkMount /*.action ajp13
2、L:/ConnApaTom/workers.properties文件内容为
workers.tomcat_home="L:/service/tomcat8"
workers.java_home="L:/Java"
ps=/
worker.list= ajp13
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13
worker.ajp13.lbfactor=1
3、tomcat的server.xml
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
已解决
报错:jk_open_socket::jk_connect.c (735): connect to 136.83.91.0:8009 failed
将 worker.ajp13.host=localhost
改为 worker.ajp13.host=127.0.0.1
成功。非常谢谢dudu 的耐心指导。32个赞!!!
server.xml中的port=8080要改为8009,与 worker.ajp13.port=8009 一致。
园子的参考博文:第一篇、Apache和Tomcat的整合
tomcat的server.xml中有
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
我将<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
改为
<Connector port="8009" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
也是不行
@我幸福: telnet localhost 8009 能连上吗?
@dudu: cmd 输入 telnet localhost 8009 可以连上
@我幸福: 重启一下Apache试试, service httpd restart
@dudu: tomcat apache 每次修改都会重启,已经纠结很久,还是有问题。
@dudu: 我的项目就是一个test文件夹下有一个test1.html,test2.jsp两个
文件。这个不会有问题吧?
@我幸福: 问题不在这里,应该是mod_jk.so没正常工作,建议看一下L:/service/tomcat8/logs/mod_jk2.log中有没有相关信息
@我幸福: 问题可能出在这个配置:
LoadModule jk_module "J:/Apache24/modules/mod_jk.so" JkLogFile "L:/service/tomcat8/logs/mod_jk2.log" JkWorkersFile "L:/ConnApaTom/workers.properties"
建议参考这里的配置:
LoadModule jk_module modules/mod_jk-1.2.31-httpd-2.2.3.so JKWorkersFile conf/workers.properties JkLogFile logs/mod_jk.log
将workers.properties文件放在apache的config文件夹中
@dudu: 这是最近的L:/service/tomcat8/logs/mod_jk2.log信息:
[Sat Jan 24 15:00:03.907 2015] [7464:8160] [info] jk_open_socket::jk_connect.c (735): connect to 136.83.91.0:8009 failed (errno=60)
[Sat Jan 24 15:00:03.907 2015] [7464:8160] [info] ajp_connect_to_endpoint::jk_ajp_common.c (1019): Failed opening socket to (136.83.91.0:8009) (errno=60)
[Sat Jan 24 15:00:03.907 2015] [7464:8160] [error] ajp_send_request::jk_ajp_common.c (1659): (ajp13) connecting to backend failed. Tomcat is probably not started or is listening on the wrong port (errno=60)
[Sat Jan 24 15:00:03.907 2015] [7464:8160] [info] ajp_service::jk_ajp_common.c (2669): (ajp13) sending request to tomcat failed (recoverable), because of error during request sending (attempt=1)
[Sat Jan 24 15:00:25.014 2015] [7464:8160] [info] jk_open_socket::jk_connect.c (735): connect to 136.83.91.0:8009 failed (errno=60)
[Sat Jan 24 15:00:25.014 2015] [7464:8160] [info] ajp_connect_to_endpoint::jk_ajp_common.c (1019): Failed opening socket to (136.83.91.0:8009) (errno=60)
[Sat Jan 24 15:00:25.014 2015] [7464:8160] [error] ajp_send_request::jk_ajp_common.c (1659): (ajp13) connecting to backend failed. Tomcat is probably not started or is listening on the wrong port (errno=60)
[Sat Jan 24 15:00:25.014 2015] [7464:8160] [info] ajp_service::jk_ajp_common.c (2669): (ajp13) sending request to tomcat failed (recoverable), because of error during request sending (attempt=2)
[Sat Jan 24 15:00:25.014 2015] [7464:8160] [error] ajp_service::jk_ajp_common.c (2689): (ajp13) connecting to tomcat failed.
[Sat Jan 24 15:00:25.014 2015] [7464:8160] [info] jk_handler::mod_jk.c (2806): Service error=-3 for worker=ajp13
[Sat Jan 24 15:17:40.845 2015] [2384:2388] [info] init_jk::mod_jk.c (3383): mod_jk/1.2.39 initialized
[Sat Jan 24 15:17:44.387 2015] [9368:9744] [info] init_jk::mod_jk.c (3383): mod_jk/1.2.39 initialized
[Sat Jan 24 15:17:44.548 2015] [9368:9744] [info] init_jk::mod_jk.c (3383): mod_jk/1.2.39 initialized
[Sat Jan 24 15:18:06.198 2015] [9368:9612] [info] jk_open_socket::jk_connect.c (735): connect to 136.83.35.0:8009 failed (errno=60)
[Sat Jan 24 15:18:06.199 2015] [9368:9612] [info] ajp_connect_to_endpoint::jk_ajp_common.c (1019): Failed opening socket to (136.83.35.0:8009) (errno=60)
[Sat Jan 24 15:18:06.199 2015] [9368:9612] [error] ajp_send_request::jk_ajp_common.c (1659): (ajp13) connecting to backend failed. Tomcat is probably not started or is listening on the wrong port (errno=60)
[Sat Jan 24 15:18:06.199 2015] [9368:9612] [info] ajp_service::jk_ajp_common.c (2669): (ajp13) sending request to tomcat failed (recoverable), because of error during request sending (attempt=1)
[Sat Jan 24 15:18:27.332 2015] [9368:9612] [info] jk_open_socket::jk_connect.c (735): connect to 136.83.35.0:8009 failed (errno=60)
[Sat Jan 24 15:18:27.332 2015] [9368:9612] [info] ajp_connect_to_endpoint::jk_ajp_common.c (1019): Failed opening socket to (136.83.35.0:8009) (errno=60)
[Sat Jan 24 15:18:27.332 2015] [9368:9612] [error] ajp_send_request::jk_ajp_common.c (1659): (ajp13) connecting to backend failed. Tomcat is probably not started or is listening on the wrong port (errno=60)
[Sat Jan 24 15:18:27.332 2015] [9368:9612] [info] ajp_service::jk_ajp_common.c (2669): (ajp13) sending request to tomcat failed (recoverable), because of error during request sending (attempt=2)
[Sat Jan 24 15:18:27.332 2015] [9368:9612] [error] ajp_service::jk_ajp_common.c (2689): (ajp13) connecting to tomcat failed.
[Sat Jan 24 15:18:27.333 2015] [9368:9612] [info] jk_handler::mod_jk.c (2806): Service error=-3 for worker=ajp13
[Sat Jan 24 15:26:37.584 2015] [9368:9612] [info] jk_open_socket::jk_connect.c (735): connect to 136.83.35.0:8009 failed (errno=60)
[Sat Jan 24 15:26:37.585 2015] [9368:9612] [info] ajp_connect_to_endpoint::jk_ajp_common.c (1019): Failed opening socket to (136.83.35.0:8009) (errno=60)
[Sat Jan 24 15:26:37.585 2015] [9368:9612] [error] ajp_send_request::jk_ajp_common.c (1659): (ajp13) connecting to backend failed. Tomcat is probably not started or is listening on the wrong port (errno=60)
[Sat Jan 24 15:26:37.585 2015] [9368:9612] [info] ajp_service::jk_ajp_common.c (2669): (ajp13) sending request to tomcat failed (recoverable), because of error during request sending (attempt=1)
[Sat Jan 24 15:26:58.700 2015] [9368:9612] [info] jk_open_socket::jk_connect.c (735): connect to 136.83.35.0:8009 failed (errno=60)
[Sat Jan 24 15:26:58.700 2015] [9368:9612] [info] ajp_connect_to_endpoint::jk_ajp_common.c (1019): Failed opening socket to (136.83.35.0:8009) (errno=60)
[Sat Jan 24 15:26:58.700 2015] [9368:9612] [error] ajp_send_request::jk_ajp_common.c (1659): (ajp13) connecting to backend failed. Tomcat is probably not started or is listening on the wrong port (errno=60)
[Sat Jan 24 15:26:58.700 2015] [9368:9612] [info] ajp_service::jk_ajp_common.c (2669): (ajp13) sending request to tomcat failed (recoverable), because of error during request sending (attempt=2)
[Sat Jan 24 15:26:58.700 2015] [9368:9612] [error] ajp_service::jk_ajp_common.c (2689): (ajp13) connecting to tomcat failed.
[Sat Jan 24 15:26:58.700 2015] [9368:9612] [info] jk_handler::mod_jk.c (2806): Service error=-3 for worker=ajp13
@我幸福: 问题出在这里 connect to 136.83.91.0:8009 ,应该是连 connect to 127.0.0.1:8009
@dudu: 你 ping localhost 看返回的IP地址是多少?
@dudu: 127.0.0.1
@dudu: 这个 136.83.91.0:8009 怎么来的?怎么设置成连 connect to 127.0.0.1:8009
@我幸福: 说明 worker.ajp13.host=localhost 这个设置没生效,可能是workers.properties没起作用
@dudu: 那这个136.83.91.0 是啥?从何而来,我的IP也不是这个啊?Apache的端口是8082不是80会引起其他吗?
@我幸福: 在httpd.conf中加上下面的配置试试:
JkMount /test1/*.jsp ajp13
@dudu: 加上JkMount /test/*.jsp ajp13
还是同样的问题
@我幸福: 把 worker.ajp13.host=localhost 改为 worker.ajp13.host=127.0.0.1 试试
@我幸福: workers.properties中的 ps=/ 是干吗的?最好去掉
@dudu: 改成这样居然可以了,为何?
@我幸福: 改成127.0.0.1就可以了?
@dudu: 是啊,改成worker.ajp13.host=127.0.0.1 就行了。这是什么逻辑?太感谢你了。
@我幸福: 可能是你电脑上安装的什么软件拦截了localhost的IP解析
@dudu: 可能吧,电脑上安装了各种软件。非常感谢你。