4

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

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

谢谢!

4

2 回答 2

3

您的 REST API 必须面向公众。

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

Public
    - RESTful API, RPC endpoints
    - Websites, etc
--------------------------------------
Private
    - Databases, queues 
    - VPN-tunnelled servers
    - additional servers / external resources
于 2013-08-16T16:46:13.957 回答
0

我的解决方案是使用应用程序请求路由模块 + 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 对此进行测试,老实说,我不知道此设置的安全影响。任何人?

于 2013-10-05T22:19:17.777 回答