我在 TorqueBox 上运行多个 Rails 应用程序。每个应用程序都安装在不同的 Web 上下文中,例如,localhost:8080/app1
和localhost:8080/app2
(通过 TorqueBox 配置)。Apache 被配置为接受app1.domain.com
和app2.domain.com
通过虚拟主机的请求。但是,我遇到了一些应用程序路径(表单提交路径和其他路径)期望以 . 开头的问题/app1
,例如,http://app1.domain.com/app1/rest/of/path
而不是正确的http://app1.domain.com/rest/of/path
.
如何配置 Apache 以便http://app1.domain.com/app1/...
向正确的路径发出请求(即,没有前导/app1
)?我已经尝试使用重定向来执行此操作,但这不起作用,因为它们强制执行 GET 请求并且 POST 数据在此过程中丢失。
这是我当前的 Apache 配置:
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>