繁体   English   中英

Rails作为过滤反向代理

[英]Rails as a filtering reverse proxy

我想逐步将应用程序从旧的Java过渡到新的Rails应用程序。 数据流看起来像

user -> browser -> new rails -> old java

也就是说,新的Rails应用程序将充当旧应用程序的反向代理,并且用户永远不会是原始应用程序的明智者。

随着更多功能迁移到Rails应用程序,Java应用程序将变得越来越少。

我熟悉用于从其他应用程序请求资源的Net :: HTTP类,但是大多数示例都过度简化,并且不利于过渡。 全功能的宝石将能够

  • 处理常见的HTTP动词
  • 传递并保留Cookie
  • 从旧应用程序重写HTML(例如,旧应用程序将具有href =“ / something / foo.html”,而新应用程序将具有“ /newpath/bar.html”)
  • 具有可配置的会话意识(将Java应用程序上的sessionID与rails会话相关联,这样,如果删除rails会话,它可以通过注销回调到Java应用程序)

性能不是大问题。

有任何指向此类宝石的指针吗? 它可能被归类为某种反向代理,中间人,过滤器等

我建议不要在Rails本身中执行此操作,而是直接在您的Web服务器(例如Apache)中执行此操作

我一直在致力于将Java网站迁移到Ruby的大型项目,并且为此一直使用Apache mod_rewrite和mod_proxy。

所以流程是

    user -> browser -> apache -> passenger or Tomcat

在Apache本身中使用模块意味着我们不需要使用任何Rails堆栈(以及相关的CPU /内存/线程)。 它还使我们能够满足您的要求之一,以确保“用户永远不会是原始应用程序的明智者”

会话管理是唯一棘手的部分。 我介绍了一个Java和Rails应用程序都可以读取的cookie,并使用cookie的存在来告诉Ruby或Java用户是否已登录。这样,Ruby和Java不需要尝试管理彼此的会话。

希望其中的一些有用吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM