0

我一直在尝试找到一个解决方案,以解决我认为应该将 Alias 与 Tomcat 和 Apache Httpd 一起非常常见的用法,但我找不到它。

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

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

我让 mod_jk 一切正常,并且别名请求被重定向到 Tomcat,但是 Tomcat 不知道如何处理别名,所以它试图找到不存在的 /webapps/myApp/folderB 所以我得到一个“文件不发现”错误。

我尝试使用 a<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>
4

1 回答 1

0

真的很晚了,但是我遇到了同样的问题,这是一个可行的解决方案:对于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 和连接器知道 Apache 别名。如果我有任何进展,我会更新我的答案..

于 2013-07-04T11:04:05.880 回答