2013-03-18 50 views
0

我一直在试图找到一个解决方案,我认为应该是一个非常常见的使用别名与Tomcat & Apache Httpd,但我无法找到它。Mod_JK,Tomcat和Apache Httpd使用别名时“文件未找到”

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

基本上我有我的Tomcat应用程序/ webapps/myApp里面,我有“/ folderA”,所以使用http:localhost:8080/myApp/folderA工作正常以及localhost/myApp/folderA。我希望能够将用户/文件夹B指向/ folderA并提供动态内容,并在事情失败时提供服务。

我拥有一切与mod_jk和别名请求重定向到Tomcat,但Tomcat不知道如何处理别名,所以它试图找到/ webapps/myApp/folderB哪些不存在,所以我得到一个“文件未找到”的错误。

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

任何帮助表示赞赏。谢谢!

<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> 

回答

0

真的晚了,但我有同样的问题,这里是一个工作的解决方案:别名虚拟主机内由的mod_jk处理所有的文件将被忽略。

更新你的tomcat/conf目录/ server.xml中和上下文添加到您的主机:

<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和连接器知道Apache的别名。我会更新我的答案,如果我有任何进展..

相关问题