【问题标题】:Forward HTTP requests to a private server将 HTTP 请求转发到私有服务器
【发布时间】:2013-08-16 16:33:40
【问题描述】:

我们目前正在 AWS 上运行一个 Web 服务器,并且正在考虑添加一些 RESTful API。但是,这些 RESTful API 必须调用 2 个其他内部 Web 服务。 (我的意思是内部,一台位于 AWS 上,但只能由 Web 服务器访问,另一台是本地服务器,带有通往该 Web 服务器的 VPN 隧道)

我的问题是,有没有办法将这些 RESTful API 托管在这 2 个内部 Web 服务器上?也许让客户端调用公共 Web 服务器,公共 Web 服务器会以某种方式将这些调用转发或传递到 2 个内部服务器?这样,我们就不必在公共网络服务器上编写和托管额外的网络 API。

谢谢!

【问题讨论】:

  • 是否可以通过 IIS 重写来做到这一点?
  • 可能。这些是 Web 服务器的典型需求

标签: rest amazon-web-services asp.net-web-api


【解决方案1】:

您的 REST API 必须面向公众。

根据我的经验,最好有 1 个公开的 API,并在 API 的后端处理所有其他资源,其中这些外部依赖项位于 私有子网,这样您就可以可以减少潜在的安全问题。

Public
    - RESTful API, RPC endpoints
    - Websites, etc
--------------------------------------
Private
    - Databases, queues 
    - VPN-tunnelled servers
    - additional servers / external resources

【讨论】:

    【解决方案2】:

    我的解决方案是使用应用程序请求路由模块 + IIS URL 重写。

    例如我有 (A) http://publicsite.com 和 (B) http://privatesite.com,其中 (B) 托管我的 RESTful API。

    IIS ARR 配置了反向代理来重写http://publicsite.com/Api/* 以路由到http://privatesite.com/

    然后客户端会访问,例如http://publicsite.com/Api/scores,然后 IIS 会将请求重写为http://privatesite.com/scores

    我尚未使用 HTTPS 对此进行测试,老实说,我不知道此设置对安全性的影响。任何人?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-04-10
      • 1970-01-01
      • 1970-01-01
      • 2020-09-25
      • 1970-01-01
      • 2022-06-16
      • 1970-01-01
      相关资源
      最近更新 更多