【问题标题】:DataSnap server - redirect HTTP requests to another DataSnap serverDataSnap 服务器 - 将 HTTP 请求重定向到另一个 DataSnap 服务器
【发布时间】:2013-06-15 18:02:34
【问题描述】:

我的应用程序包含一个“网关”DataSnap REST 服务器,它是所有客户端的第一个访问点。根据客户端在其请求中传递的用户名(基本身份验证),请求需要重定向到另一个 DataSnap 服务器。我的问题 - 无论如何构建“网关”服务器,以便它根据用户名或 HTTP 请求标头中的其他值简单地将任何请求重定向到另一台服务器?我试图避免在“网关”服务中重复所有服务器方法,即我宁愿不将 2 个请求“链接”在一起,而是以某种方式只重定向 1 个请求。

不确定这是否可能,但认为有人可能会证明我错了?我使用的是 Delphi XE2,DataSnap 服务器是 Windows 服务。

【问题讨论】:

    标签: delphi rest redirect delphi-xe2 datasnap


    【解决方案1】:

    我可以在这里看到两个选项:

    • 仅使用第一台服务器登录后返回真实服务器的地址

    • 在 Datasnap 服务器和 RewriteRules 前面使用 Apache 或 NGINX 反向代理基于身份验证数据(但是我今天的 Google-Fu 似乎已经用尽了,也许这可以作为 HTTP / Apache 特定问题在这里放置所以)

    【讨论】:

    • +1。谢谢;这是我想到的基于 HTTP 的解决方案。
    【解决方案2】:

    短版:解决方案将取决于您知道将请求定位到哪个级别(HTTP、DataSnap 等)。

    如果可以在DataSnap级别做出决定,有两种解决方案:

    • 执行此操作的纯粹方法是编写一个通用 DataSnap 网关,该网关可以询问 datasnap 目标服务器,为其动态创建代理服务器和客户端,然后拦截流量并决定将请求移交给哪个 datasnap 目标服务器.
    • 一种更务实的方法是您害怕的方法。

    另一种方法是在 HTTP 级别。仅当您可以在 HTTP 级别确定应将请求移交给哪个目标服务器时,这才有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-11-22
      • 2011-11-05
      • 2012-12-12
      • 2014-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多