多个服务器端应用程序应该如何相互“通信”


How should multiple server-side apps "communicate" with each other

假设在两个单独的服务器上有两个服务器端应用程序。

服务器 #1,IP 地址 1.2.3.4,包含一个带有 MySQL 数据库的 PHP Web 应用程序。

服务器 #2,IP 地址 5.6.7.8,包含一个带有 MongoDB 数据库的 NodeJS 应用程序。

PHP 应用程序如何"命令"NodeJS 应用程序(反之亦然)做某事,例如:

  • "请将此数据保存在您的数据库中",或
  • "我想从您的数据库中检索数据,其中 some_id = 123"

这些内部通信应该是安全的,这意味着除了两个服务器之外,没有人可以执行它们。

我认为这可以通过简单的HTTP POST/GET请求来实现。
例如,NodeJS 应用程序发送带有参数的 POST 请求以http://1.2.3.4/do_something.php或者也许PHP应用程序向http://5.6.7.8/retrieveSomething
发送GET请求但我认为它不安全,因为 URL 是公开的。(如果我错了,请纠正我)

我什至不知道这个问题的谷歌搜索关键字。
是网络服务吗?SOA?RPC?

你的例子很好。在保护它方面,一个简单的方法是让"客户端/发送者"在请求中发送某种商定的API密钥。然后,"服务器/接收方"将检查此 API 密钥。如果它有效,则将执行相应的命令。如果不是,服务器将只返回一个404 Not Found