[英]Mod_JK, Tomcat & Apache Httpd “File not found” when using Alias
我一直在嘗試尋找一種解決方案,我認為這應該是Alias在Tomcat和Apache Httpd中的一種非常普遍的用法,但我找不到它。
我有運行我的應用程序服務器的Tomcat,我希望能夠使用別名來提供動態內容。 我將Apache Httpd配置為Mod_JK的前端,以通過Tomcat提供所有動態文件。 除使用別名(因為Tomcat不知道如何處理別名)時,此方法工作正常。
基本上,我的Tomcat應用程序/ webapps / myApp里面有“ / folderA”,因此使用http:localhost:8080 / myApp / folderA以及localhost / myApp / folderA都可以正常工作。 我希望能夠使/ folderB指向/ folderA並提供動態內容,那就是事情失敗了。
我使用mod_jk使一切正常,並且別名請求被重定向到Tomcat,但是Tomcat不知道如何處理別名,因此它嘗試查找不存在的/ webapps / myApp / folderB,因此我得到了“找到”錯誤。
我嘗試使用<Context path...
但隨后得到了靜態內容。 我還嘗試使用Apache RewriteRule將請求從/ folderB傳遞到/ folderA,但這也不起作用。 以下是我擁有的VirtualHost設置的示例。 我猜想我需要在Tomcat的末端做一些事情,以便它知道如何處理/ folderB並將其指向/ folderA或在將信息傳遞給Tomcat之前使httpd將/ 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>
確實很晚,但是我遇到了同樣的問題,這是一個可行的解決方案:對於由mod_jk處理的所有文件,將忽略VirtualHost中的別名 。
更新您的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和Connector知道Apache別名。 如果有任何進展,我將更新我的答案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.