【问题标题】:PHP app, web services & separate IP addressesPHP 应用程序、Web 服务和单独的 IP 地址
【发布时间】:2016-11-27 13:07:35
【问题描述】:

我正在开发一个应用程序,每个客户都有自己的个人资料。其中一项功能允许向客户拥有的系统发送 SOAP 请求。 目前,与客户 Web 服务的所有通信都通过一个 IP 地址进行,与应用程序相同。我希望 SOAP 通信有自己的 IP,与应用程序的其余部分分开。

该应用使用 PHP 编写,使用 UserFrosting 框架,很快将托管在 amazon aws 上。

这样的分离可能吗?这可以在 PHP 级别完成吗?

此要求背后的原因是允许客户在其防火墙中仅将与 Web 服务相关的 IP 列入白名单。

【问题讨论】:

    标签: php web-services network-programming userfrosting


    【解决方案1】:

    简短的回答是否定的,这不能通过 PHP 完成。

    在 SOAP 方面的 PHP 运行在 OSI 模型 (HTTP) 的应用层上,因此这意味着在使用该层时已经分配了一个 IP 地址。

    https://en.wikipedia.org/wiki/OSI_model

    为此,您可以有两个 Web 服务器(主服务器和 SOAP),它们在内部 IP 范围内进行通信,但 SOAP 上的请求将通过它自己的 WAN 地址出站,然后您会将其提供给客户。如果您不想走两台服务器的路线,第二张网卡(虚拟/硬件)和服务器上的 Apache 侦听规则可以达到类似的结果:

    https://serverfault.com/questions/511018/how-to-configure-apache-to-run-on-multiple-network-interfaces#511020

    另一种方法是使用不同的 TCP 端口与客户端站点进行 SOAP 请求通信。例如,您可以将所有 SOAP 请求发送到端口 8080 而不是 80 上的客户端 WAN IP,并让客户端在其防火墙上放置入站 NAT(网络地址转换),以将从您的 WAN IP 传入的所有流量转换为 TCP 8080 被转换回 TCP 80 以便服务器可以接受请求。如果您的服务器正在侦听该端口,他们将需要将其转换回 TCP 8080。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-23
      • 1970-01-01
      • 2011-05-24
      • 2015-08-16
      • 1970-01-01
      • 2018-02-09
      相关资源
      最近更新 更多