Mod_JK,Tomcat&使用Alias时,Apache Httpd“找不到文件”

时间:2013-03-18 20:08:39

标签: tomcat7 apache mod-jk mod-alias

我一直在努力找到一个解决方案,我认为这应该是Alias与Tomcat&的非常常见的用途。 Apache Httpd但我找不到它。

我让Tomcat运行我的应用程序服务器,我希望能够使用别名来提供动态内容。我将Apache Httpd配置为Mod_JK的前端,通过Tomcat提供所有动态文件。这种方法很好,除非使用别名,因为Tomcat不知道如何处理别名。

基本上我的Tomcat应用程序/ webapps / myApp里面有“/ folderA”,所以使用http:localhost:8080 / myApp / folderA和localhost / myApp / folderA一样正常。我希望能够将user / folderB指向/ folderA并提供动态内容,这就是事情失败的时候。

我使用mod_jk工作得很好,别名请求被重定向到Tomcat,但Tomcat不知道如何处理别名,所以它试图找到不存在的/ webapps / myApp / folderB所以我得到了一个“找不到文件”错误。

我尝试使用<Context path...,但后来我收到了静态内容。我也尝试使用Apache RewriteRule将/ folderB中的请求传递给/ folderA,但这也不起作用。下面是我拥有的VirtualHost设置的示例。我猜我需要在Tomcat的最后做一些事情,以便知道如何处理/ folderB并将其指向/ folderA或将httpd translate / folderB传递给/ folderA,然后再将信息传递给Tomcat。

感谢任何帮助。谢谢!

<VirtualHost *:80>


    DocumentRoot "/webapps/ROOT"
    Alias /folderB "webapps/ROOT/folderA"


    JkMount /folderB/* myWorker

    ServerName myServer.local
    ServerAlias www.myServer.local

    ErrorLog "logs/myServer.local-error.log"
</VirtualHost>

1 个答案:

答案 0 :(得分:0)

很晚,但我遇到了同样的问题,这是一个有效的解决方案: mod_jk处理的所有文件都会忽略 VirtualHost 中的别名

更新tomcat / conf / server.xml并向主机添加一个Context:

  <Host name="your-domain.com" appBase="webapps">
    <!-- root path -->
    <Context path="" docBase="/your/app/" />
    <!-- alias for folderB -->
    <Context path="/folderB" docBase="/your/app/somewhere/else/folderb/" /> 
  </Host>

这让我很困惑,因为ColdFusion和Connector知道Apache别名。如果我有任何进展,我会更新我的答案。