如何在server.xml中为Apacheconfigurationuriworkermap.properties – Tomcat集成?

我非常接近完成我的第一次自定义安装,我可以“品尝它”…我遵循Apache Tomcat安装,并且我有两台服务器并行工作。 我的Apache服务器configuration为公共IP,并将HTML和XML页面发送到互联网。

我的Tomcat,与localhost:8080一起工作,我可以执行示例JSP,Servlets,Applets等

现在我互连了,所以Tomcat可以为JSP请求和后端数据库提供服务。 我发现Tomcat连接器,我可以从日志中validationURL是从互联网进入的,因为它logging在Apache日志中,然后被发送到Tomcat,因为我可以在其日志中看到URL并parsing出组件。 到目前为止,这么好……没有发生的是回程 – 回应。

浏览器现在得到一个503服务不可用的响应(巨大的进步/成功),我可以看到在日志中转储的ascii / hex响应。

我认为缺less的是获取configuration到服务器configuration的规则。 这就是安装文件非常模糊的地方。 我冲浪的答案,但这一切都回来了IIS的答案,这不适用于我的Apache。

我认为规则是正确的,但我需要知道如何“把它们放在服务器configuration中”。 我假设该文件进入我的workers.properties存储在conf /文件夹,我猜测引用在'server.xml' – 这两个点是否正确? 它的哪一部分server.xml进去了,config-node如何格式化呢?

如果我的问题需要更多的细节,请回火,我会提供更多。

  • Apache 2.2
  • Windows XP 5.1.26(古代,但所有的SP都安装)
  • Tomcat 5.2.7
  • Java / JRE / JSDK等都是〜1.4.x,1.5.x和1.6.x(如果需要的话,我将不得不挖掘更多)。
  • 连接器是1.7(我认为)configuration为AJP1.3
  • 所有标准端口
  • 防火墙是Netgear的端口转发
  • 用户名/密码不是默认的
  • 其他的东西 ????

另外,如果有更多关于debugging/追踪这个问题的提示 – 我想为我的客户logging。

严重错误的问题标题 – 漫长的一天。 你正在寻找的命令指令是这样的:

JkMountFile

你可以把这个指令放在你的httpd.conf中(或者根据你的设置,单独设置mod_jk.conf)

从Apache的文档

包含从上下文到Tomcat工作者的多个映射的文件。 它通常被称为uriworkermap.properties。 有关inheritance规则,请参阅:JkMountCopy。 没有默认值。


如果有人有兴趣,我会在这里留下。

所以,既然你有一个workers.properties,你可能正在使用mod_jk(已经为mod_proxy_ajp *折旧了)。 workers.properties实际上是mod_jkconfiguration的一部分。

是的,mod_jk的文档非常轻。 因此,我将继续向您展示我的生产configuration,例如,您可能需要在运行* nix框时稍微修改它,但其概念是相同的。

  1. 你httpd.conf应该有类似这样的:这告诉apache包括一个单独的mod_jkconfiguration文件(实际上你可以把这些指令放在httpd.conf中,但是…我喜欢模块化)。 然后configuration别名,以及你的jsp文件的挂载点。

     Include <path_to_mod_jk.conf> <VirtualHost *:80> JkAutoAlias /usr/tomcat/webapps JkMount /<your_webapp>/*.jsp <your_worker> 
  2. 你的mod_jk.conf应该是这样的:

这是你设置所有的通用mod_jk设置为Apache,日志,工人文件等

  #MOD_JK Config File JkWorkersFile <path_to_your_workers.properties> JkLogFile /var/log/httpd/mod_jk.log JkLogLevel error JkShmFile /var/run/mod_jk.shm 

最后,你应该有一个类似于workers.properties:最后我们得到了configuration的肉。 这是你安装工人的地方。 这些选项很自我解释。

  worker.<your_worker_name>.type=ajp13 worker.list=<your_worker_name> #Worker Config worker.<your_worker_name>.host=127.0.0.1 worker.<your_worker_name>.port=8009 
  • 是的,我仍然在生产中运行这个,虽然我们正在开始一个现代化项目,可能会看到mod_jk的结束和迁移到mod_proxy_ajp