2013-03-18 43 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的別名。我會更新我的答案,如果我有任何進展..

相關問題