我一直在努力找到一个解决方案,我认为这应该是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>
答案 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别名。如果我有任何进展,我会更新我的答案。