例如,我有前端导轨应用程序,该应用程序可以根据URL来反向代理许多后端导轨应用程序
http://www.my_host.com/app_one
反向代理到http://www.remote_host_running_app_one.com
这样像http://www.my_host.com/app_one/users
这样的URL将显示http://www.my_host.com/app_one/users
的内容
我有一个庞大而且不断扩大的后端数量,所以他们不能在数据库以外的任何地方明确列出。 这对使用prg:/ rewrite映射反向代理的mod_rewrite没有任何问题。
问题是,由rails助手返回的url具有/controller/action
forms,使得它们绝对是根。 这是由mod_rewrite提供的页面的问题,因为代理页面上的链接对域显示为绝对的。 即:
http://www.my_host.com/app_one/controller/action
有链接,最终看起来像/controller/action/
当他们需要看起来像/app_one/controller/action
mod_proxy_html似乎是正确的想法,但它似乎并不像我所需要的那样dynamic,因为规则需要被硬编码到configuration文件中。
有没有办法解决这个服务器端,以便链接将被正确路由?
您可以尝试使用ProxyPass和ProxyPassReverse。
ProxyPass /app_one http://www.remote_host_runing_app_one.com ProxyPassReverse /app_one http://www.remote_host_running_app_one.com
虽然你最好在他们命名的目录下运行你的ruby应用程序,并直接反向代理,而不是重写改变uri。
你可以看看独angular兽,乘客或瘦,运行下面的ruby应用程序,以提供更多的灵活性,如何运行。