从Internet服务器(公共)调用Intranet(专用)服务器上的.php页面

时间:2014-04-02 21:17:42

标签: php perl

所以我甚至不确定这是否可能,我找不到任何东西。

我有一个定制的在线订购系统,客户可以从中订购熟食。此页面位于Server1,它是一个公共服务器。

在Server2上,一个内部公司服务器,创建了一个php页面,构建了' Order Form' (在数据库中查找未打印的订单),然后将结果/参数发送到perl文件,该文件将表单打印/发送到指定位置(多个位置用于提取)。

我有一个在Server2上运行的计划任务,它运行php文件。

我想要做的是能够在一个人提交订单时从Server1启动Server2上的php文件。我希望这在正常的计划任务之外运行。

我无法使用cURL,因为内部服务器2没有可以发送到的URL,因为它只是内部的。

任何可以实现此目的的想法或工作/黑客攻击?

编辑:(处理流程)

当用户提交订单时,Server1(公共Web服务器)为Server3(内部数据库服务器)中的订单创建条目。 Server2 php文件(计划任务)查询Server3数据库中的非打印订单并打印它们。

1 个答案:

答案 0 :(得分:1)

在您的设置中,Server2始终可以访问Server1,但不能相反。您希望将数据从Server1“推送”到Server2,这是不可能的。我可以想到两类解决方案:

  1. 轮询。在Server1上创建一个“私有”php文件,其中包含新订单列表。 Server2将定期检查或“轮询”此列表并接收新订单。为了确保安全,您应该使用HTTPS并使用秘密共享密钥或密码。 Server2收到订单后可以发出POST请求,让Server1知道订单已经处理完毕。
  2. 公共互联网上的第三方服务或API,因此两个服务器都可以访问。想到了一些服务。

  3. 还有其他类似于推送器的服务也可以解决您的需求:http://www.quora.com/What-are-alternatives-to-pusher-com