【发布时间】:2013-11-29 20:13:29
【问题描述】:
我在 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>
【问题讨论】:
-
我遇到了同样的问题,但使用的是 nginx。您找到解决方案了吗?
-
尝试在 TorqueBox 配置中设置主机而不是上下文。例如,不要使用上下文“/sub1”,而是使用主机“sub1.domain.tld”。然后一切都应该正常工作。看到这个:torquebox.org/documentation/3.0.1/…我希望它有所帮助。
-
感谢您的提示!现在我被困在 nginx 配置中!
标签: ruby-on-rails apache torquebox