ProxyPassReverse到Tomcat添加URL的路径

时间:2012-01-26 09:16:49

标签: apache coldfusion tomcat6 mod-proxy railo

我在Tomcat 6.0.32中运行Railo 3。 tomcat服务器由Apache 2.2.20提供。 Tomcat和Apache是​​openCSW的预构建二进制文件。 Railo只是在tomcat的autodeploy dir webapps中部署的最新构建战。

当我尝试访问tomcat服务器上的railso和内容时,一切正常。

然而,当tomcat上的铁路将我重定向到自己时,它失败了。大多数情况下,当cfm脚本使用 CGI.script_name 时,它将返回错误。

在Apache方面,内容可在www.hostname.com上获得。 Apache在www.hostname.com:8009/railo/content上通过AJP将用户重定向到tomcat。

tomcat上的脚本(取自开放的OAuth示例)可在以下网址获得:

/opt/csw/share/tomcat6/webapps/railo/content/oauth_test/examples/admin_consumers.cfm

当我访问它并尝试执行某些操作时,它会使用一些参数调用自身,但此时,railo会转出错误,抱怨无法找到该文件:

Page /content/railo/content/oauth_test/examples/admin_consumers.cfm [/opt/csw/share/tomcat6/webapps/railo/content/railo/content/oauth_test/examples/admin_consumers.cfm] not found

正如您所见,railo从tomcat添加了两倍的相对路径: / railo / content / railo / content

这是我在Apache中虚拟主机的配置:

<VirtualHost *:443>
    ServerName www.hostname.com
    DocumentRoot "/opt/www/hostname/htdocs/"

    ProxyRequests Off
    <proxy *="">
        Order deny,allow
        Allow from all
    </proxy>

    ProxyPass / ajp://www.hostname.com:8009/railo/content/
    ProxyPassReverse / http://www.hostname.com:8888/railo/content/
</VirtualHost>

我为ProxyPassReverse指令尝试了几个变种,但到目前为止没有运气。基于网络上的大量搜索(The Mystery of ProxyPassReverse),我尝试使用proxypassreverse:

    ProxyPassReverse / ajp://www.hostname.com:8009/railo/content/
    ProxyPassReverse / http://www.hostname.com:8888/railo/content/
    ProxyPassReverse / http://localhost:8888/railo/content/
    ProxyPassReverse / https://www.hostname.com

tomcat服务器还有一个如下定义的虚拟主机:

 <Host name="www.hostname.com">
    <Context path="" docBase="/opt/csw/share/tomcat6/webapps/railo/content" />
 </Host>

但每次,我总是从Railo那里得到错误。

有没有人见过Railo或CGI这个问题,并且知道如何修复它?

1 个答案:

答案 0 :(得分:0)

您指定了两次“/ railo / content”。进入“docBase”属性并再次进入Proxy属性。因此,通过Apache代理的请求将在其请求路径中具有两次“railo / content /”,因为您将其列出两次:一次在Apache中,另一次在Tomcat中。

尝试不使用ProxyPassReverse属性中的/ railo / content /:

ProxyPassReverse / http://www.hostname.com:8888/

这将让Tomcat配置自己添加/ railo / content / bit。