【问题标题】:How should multiple server-side apps "communicate" with each other多个服务器端应用程序应如何相互“通信”
【发布时间】:2015-01-27 18:17:43
【问题描述】:

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

服务器 #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 应用程序向http://1.2.3.4/do_something.php 发送带有参数的 POST 请求 或者 PHP 应用程序将 GET 请求发送到 http://5.6.7.8/retrieveSomething
但我认为它不安全,因为 URL 是公开的。 (如果我错了,请纠正我)

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

【问题讨论】:

  • 一个非常简单的方法是JSON-RPC,它是您可以使用的最薄、最严肃的标准化方法。这是一个选择吗?
  • 谢谢,这看起来是一个可行的选择,我会试试的。

标签: php node.js http server


【解决方案1】:

你的例子很好。就保护它而言,一种简单的方法是让“客户端/发送者”连同请求一起发送某种商定的 API 密钥。然后“服务器/接收器”将检查此 API 密钥。如果它有效,则将执行适当的命令。如果不是,服务器将简单地返回一个404 Not Found

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多