代理请求通过path前缀到虚拟主机

我正在TorqueBox上运行多个Rails应用程序。 每个应用程序都安装在不同的Web上下文中,例如localhost:8080/app1localhost:8080/app2 (通过TorqueBoxconfiguration)。 Apacheconfiguration为通过虚拟主机接受对app1.domain.comapp2.domain.com请求。 但是,我遇到了一些问题,其中一些应用程序path(表单提交path和其他)预期会被/app1 ,例如http://app1.domain.com/app1/rest/of/path而不是正确的http://app1.domain.com/rest/of/path

我如何configurationApache,以便对http://app1.domain.com/app1/...的请求到正确的path(即没有领先的/app1 )? 我试过这样做的redirect,但这是行不通的,因为他们强制GET请求和POST数据在过程中丢失。

这是我目前的Apacheconfiguration:

 LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so ProxyRequests Off ProxyPreserveHost On NameVirtualHost *:80 <VirtualHost *:80> # There are multiple vhosts like this one, for different apps. ServerName app1.domain.com ProxyPass / http://127.0.0.1:8080/app1/ ProxyPassReverse / http://127.0.0.1:8080/app1/ </VirtualHost> 

我通过在TorqueBox配置中使用Web主机而不是Web上下文来解决此问题。 之后,获得Apache配置工作是没有问题的,因为不同的应用程序不在特定的上下文路径下。

所以,而不是( config/torquebox.rb ):

 TorqueBox.configure do web do context '/app1' end end 

你应该做这个:

 TorqueBox.configure do web do host 'app1.domain.tld' end end