Apache+Tomcat配置集群,最后出现503错误

Henry956595421 2012-09-08 10:35:10
我参考该文章配置:
http://www.iteye.com/topic/1017961

配置完成后,我依次启动apache和本机上面的3个tomcat,访问http://localhost/justTest/test.jsp
报503错误:
Service Temporarily Unavailable
The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.

如果加上端口号,http://localhost:11080/justTest/test.jsp,则可以正常访问的。

下面附上修改后的配置文件:

1.从官网下载的mod_jk-1.2.32-httpd-2.2.x.so放在apache的modules目录下面。
2.修改httpd.conf,在最后面加上一行:
include "c:\Program Files\Apache Software Foundation\Apache2.2\conf\mod_jk.conf"
3.在conf目录里面,新建mod_jk.conf文件,内容如下:

LoadModule jk_module modules/mod_jk-1.2.32-httpd-2.2.x.so

JkWorkersFile conf/workers.properties

#指定那些请求交给tomcat处理,"controller"为在workers.propertise里指定的负载分配控制器名

JkMount /*.jsp ajp13

4.在conf目录里面,新建workers.properties文件,内容如下:

#server
workers.tomcat_home=/tomcat1
workers.java_home=$JAVA_HOME
ps=/
worker.list = tomcat1,tomcat2,tomcat3,ajp13

#========tomcat1========

worker.tomcat1.port=11009

worker.tomcat1.host=localhost

worker.tomcat1.type=ajp13

worker.tomcat1.lbfactor = 1

#========tomcat2========

worker.tomcat2.port=12009

worker.tomcat2.host=localhost

worker.tomcat2.type=ajp13

worker.tomcat2.lbfactor = 1

#========tomcat3========

worker.tomcat3.port=13009

worker.tomcat3.host=localhost

worker.tomcat3.type=ajp13

worker.tomcat3.lbfactor = 1



#========ajp13,负载均衡控制器========

worker.ajp13.type=lb

worker.ajp13.balanced_workers=tomcat1,tomcat2,tomcat3

worker.ajp13.sticky_session=1

5.如果htdocs里面没有favicon.ico,请把这个放进去,否则报错:
直接下载一个放进去:http://www.linuxsky.org/favicon.ico

下面配置tomcat:
修改每个server.xml:


找到<Server port="8005" shutdown="SHUTDOWN">,将por[color=#FF0000]t修改为"8001"[/color],为了不和其他tomcat冲突,每个tomcat的这个端口号不能一样。

找到 <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>,
将端口号修该为11080,避免和其他tomcat冲突。

找到 <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />,修改port为11009

找到<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">,去掉注释,将jvm1修改为tomcat1

找到<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>,去掉注释。

===============================
现在依次启动apache和tomcat(启动一个或多个,效果一样),最后报503错误。

====================================第一次配置集群,请大侠指教============---------
...全文
2030 21 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
w137223826 2014-04-20
  • 打赏
  • 举报
回复
我是来补充的【关于的WEB APP程序】 其实你配置正确的话,web APP 有可能照成503 http://www.iteye.com/topic/1017961【看建立测试项目那段】​ 下面是百度知道里面说的,但是我自己配置实验的时候, 不加这个元素标签,访问jsp和servlet的时候很容易出503, 就是2次访问基本就503了,但是加了以后,效果很明显 distributable元素 编辑 可以使用distributable元素来告诉servlet/JSP容器,编写的应用将在分布式Web容器中部署: <!ELEMENT distributable EMPTY> 例如,下面是一个含有distributable元素的部署描述符的例子: <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <distributable/> </web-app>
明悟 2014-03-03
  • 打赏
  • 举报
回复
楼上正解啊。
jl506269268 2014-03-01
  • 打赏
  • 举报
回复
楼主注意看这里 <proxy balancer://cluster> BalancerMember ajp://192.168.1.100:8010 loadfactor=1 route=jvm1 BalancerMember ajp://192.168.1.100:8011 loadfactor=1 route=jvm2 </proxy> 这里的8010和8011 不是你部署的tomcat的监听的端口。即:不是这个8082监听端口 <Connector port="8082" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8445" /> 这里的8010 是AJP的端口 <!-- Define an AJP 1.3 Connector on port 8009 --> <Connector port="8010" protocol="AJP/1.3" redirectPort="8445" /> 明白了吧 ,你把端口写成tomcat的监听端口了,应该改成AJP的!
jl506269268 2014-03-01
  • 打赏
  • 举报
回复
楼主注意看这里 <proxy balancer://cluster> BalancerMember ajp://192.168.1.100:8010 loadfactor=1 route=jvm1 BalancerMember ajp://192.168.1.100:8011 loadfactor=1 route=jvm2 </proxy> 这里的8010和8011 不是你部署的tomcat的监听的端口。即:不是这个8082监听端口 <Connector port="8082" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8445" /> 这里的8010 是AJP的端口 <!-- Define an AJP 1.3 Connector on port 8009 --> <Connector port="8011" protocol="AJP/1.3" redirectPort="8445" /> 明白了吧 ,你把端口写成tomcat的监听端口了,应该改成AJP的!
JAVA大大菜鸟 2014-01-09
  • 打赏
  • 举报
回复
楼主 解决了没?我jboss集群 也是这个问题
仰望_forward 2013-10-15
  • 打赏
  • 举报
回复
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> 8443也是一定要改的,我就是这个问题。
  • 打赏
  • 举报
回复
我也遇到了同样的问题,没有解决呢。
Henry956595421 2013-09-27
  • 打赏
  • 举报
回复
没弄好 。。。。
luanfeng2008 2013-04-09
  • 打赏
  • 举报
回复
我的也是同样的问题啊,楼主的解决了吗?
Henry956595421 2012-09-10
  • 打赏
  • 举报
回复
1. 我启动tomcat,http://localhost:11080/justTest/test.jsp,显示是正常的,
如果去掉端口号,访问http://localhost/justTest/test.jsp,那么就是503错误。
tomcat的首页可以访问的
我tomcat的端口分别是11080,12080,13080,因为这个端口号不能和apache的80端口重合。

2. 我使用的是httpd-2.2.22-win32-x86-no_ssl + tomcat-connectors-1.2.33-windows-i386-httpd-2.2.x, 版本应该没问题吧

3. 我参照你推荐的:http://www.linuxso.com/architecture/23044.html,增加了Proxy什么的,还是不行的,一样的错误。
Henry956595421 2012-09-10
  • 打赏
  • 举报
回复
以上就是关于apache的全部配置。

下面贴上其中一个tomcat的配置,另外两个类似:
server.xml(只粘贴关键部分):
See the License for the specific language governing permissions and
limitations under the License.
-->
<!-- Note: A "Server" is not itself a "Container", so you may not
define subcomponents such as "Valves" at this level.
Documentation at /docs/config/server.html
-->
<Server port="8001" shutdown="SHUTDOWN">



Java HTTP Connector: /docs/config/http.html (blocking & non-blocking)
Java AJP Connector: /docs/config/ajp.html
APR (HTTP/AJP) Connector: /docs/apr.html
Define a non-SSL HTTP/1.1 Connector on port 8080
-->

<Connector port="11080" protocol="HTTP/1.1"
connectionTimeout="20000" URIEncoding="UTF-8"
redirectPort="8443" />



<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="11009" protocol="AJP/1.3" redirectPort="8443" />


<!-- You should set jvmRoute to support load-balancing via AJP ie :
<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
-->
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">



<!--For clustering, please take a look at documentation at:
/docs/cluster-howto.html (simple how to)
/docs/config/cluster.html (reference documentation) -->

<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
Henry956595421 2012-09-10
  • 打赏
  • 举报
回复
2.conf目录下分别增加mok_jk.conf和workers.properties文件

mok_jk.conf:
LoadModule jk_module modules/mod_jk.so

JkWorkersFile conf/workers.properties

#指定那些请求交给tomcat处理,"controller"为在workers.propertise里指定的负载分配控制器名

JkMount /*.jsp ajp13

3. workers.properties
#server
workers.tomcat_home=/tomcat1
workers.java_home=$JAVA_HOME
ps=/
worker.list = tomcat1,tomcat2,tomcat3,ajp13

#========tomcat1========

worker.tomcat1.port=11009

worker.tomcat1.host=localhost

worker.tomcat1.type=ajp13

worker.tomcat1.lbfactor = 1

#========tomcat2========

worker.tomcat2.port=12009

worker.tomcat2.host=localhost

worker.tomcat2.type=ajp13

worker.tomcat2.lbfactor = 1

#========tomcat3========

worker.tomcat3.port=13009

worker.tomcat3.host=localhost//在我的虚拟机中的,可以算远程的吧

worker.tomcat3.type=ajp13

worker.tomcat3.lbfactor = 1



#========ajp13,负载均衡控制器========

worker.ajp13.type=lb

worker.ajp13.balanced_workers=tomcat1,tomcat2,tomcat3

worker.ajp13.sticky_session=1
Henry956595421 2012-09-10
  • 打赏
  • 举报
回复
我下面把配置文件贴出来,大家帮我看看:

1.apache的httpd.conf:
关键部分如下:

#Listen 12.34.56.78:80
Listen 80

(省略。。)

#
# Example:
# LoadModule foo_module modules/mod_foo.so
#
LoadModule actions_module modules/mod_actions.so
LoadModule alias_module modules/mod_alias.so
LoadModule asis_module modules/mod_asis.so
LoadModule auth_basic_module modules/mod_auth_basic.so
#LoadModule auth_digest_module modules/mod_auth_digest.so
#LoadModule authn_alias_module modules/mod_authn_alias.so
#LoadModule authn_anon_module modules/mod_authn_anon.so
#LoadModule authn_dbd_module modules/mod_authn_dbd.so
#LoadModule authn_dbm_module modules/mod_authn_dbm.so
LoadModule authn_default_module modules/mod_authn_default.so
LoadModule authn_file_module modules/mod_authn_file.so
#LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
#LoadModule authz_dbm_module modules/mod_authz_dbm.so
LoadModule authz_default_module modules/mod_authz_default.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_host_module modules/mod_authz_host.so
#LoadModule authz_owner_module modules/mod_authz_owner.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule autoindex_module modules/mod_autoindex.so
#LoadModule cache_module modules/mod_cache.so
#LoadModule cern_meta_module modules/mod_cern_meta.so
LoadModule cgi_module modules/mod_cgi.so
#LoadModule charset_lite_module modules/mod_charset_lite.so
#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
#LoadModule dav_lock_module modules/mod_dav_lock.so
#LoadModule dbd_module modules/mod_dbd.so
#LoadModule deflate_module modules/mod_deflate.so
LoadModule dir_module modules/mod_dir.so
#LoadModule disk_cache_module modules/mod_disk_cache.so
#LoadModule dumpio_module modules/mod_dumpio.so
LoadModule env_module modules/mod_env.so
#LoadModule expires_module modules/mod_expires.so
#LoadModule ext_filter_module modules/mod_ext_filter.so
#LoadModule file_cache_module modules/mod_file_cache.so
#LoadModule filter_module modules/mod_filter.so
#LoadModule headers_module modules/mod_headers.so
#LoadModule ident_module modules/mod_ident.so
#LoadModule imagemap_module modules/mod_imagemap.so
LoadModule include_module modules/mod_include.so
#LoadModule info_module modules/mod_info.so
LoadModule isapi_module modules/mod_isapi.so
#LoadModule ldap_module modules/mod_ldap.so
#LoadModule logio_module modules/mod_logio.so
LoadModule log_config_module modules/mod_log_config.so
#LoadModule log_forensic_module modules/mod_log_forensic.so
#LoadModule mem_cache_module modules/mod_mem_cache.so
LoadModule mime_module modules/mod_mime.so
#LoadModule mime_magic_module modules/mod_mime_magic.so
LoadModule negotiation_module modules/mod_negotiation.so
#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
#LoadModule proxy_connect_module modules/mod_proxy_connect.so
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
#LoadModule proxy_http_module modules/mod_proxy_http.so
#LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
#LoadModule reqtimeout_module modules/mod_reqtimeout.so
#LoadModule rewrite_module modules/mod_rewrite.so
LoadModule setenvif_module modules/mod_setenvif.so
#LoadModule speling_module modules/mod_speling.so
#LoadModule ssl_module modules/mod_ssl.so
#LoadModule status_module modules/mod_status.so
#LoadModule substitute_module modules/mod_substitute.so
#LoadModule unique_id_module modules/mod_unique_id.so
#LoadModule userdir_module modules/mod_userdir.so
#LoadModule usertrack_module modules/mod_usertrack.so
#LoadModule version_module modules/mod_version.so
#LoadModule vhost_alias_module modules/mod_vhost_alias.so
(省略。。)
include "c:\Program Files\Apache Software Foundation\Apache2.2\conf\mod_jk.conf"
DAO 2012-09-10
  • 打赏
  • 举报
回复
503 不是servlet的service方法写错了吗?
看看是不是这种情况:重写service方法名错了


public void service(ServletRequest req, ServletResponse res)
throws ServletException, IOException ;
睡觉不盖被 2012-09-10
  • 打赏
  • 举报
回复
http://localhost:11080/justTest/test.jsp 显示正常 就是说访问tomcat没问题
通过apache访问就不行 是不是apache和tomcat没连上
http://localhost/index.jsp能访问到tomcat么
改下apache 的端口号 44

Hibernate_chen 2012-09-10
  • 打赏
  • 举报
回复
你把tomcat端口改了
睡觉不盖被 2012-09-09
  • 打赏
  • 举报
回复
试试 http://localhost/index.jsp能访问到小猫的界面么
睡觉不盖被 2012-09-09
  • 打赏
  • 举报
回复
不知道 是不是你apache 和jk插件版本的问题
前几天我也配了个tomcat集群 参考的教程是apache2.2.X的 配置方法比较简单
http://www.linuxso.com/architecture/23044.html
不妨你也44
Henry956595421 2012-09-09
  • 打赏
  • 举报
回复
我没有多少分
请大侠们见谅啊
Henry956595421 2012-09-09
  • 打赏
  • 举报
回复
大侠们 求解释啊

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧