在两个EC2服务器之间进行通信 - AWS

时间:2014-08-13 22:41:48

标签: amazon-web-services amazon-ec2 telnet netcat

我有两台EC2服务器。一个运行Windows Server 2012 R2,另一个运行在Amazon的Linux版本上。 Linux框用作PHP服务器编写脚本的Web服务器。我希望每次处理PHP文件(充当RESTful端点)时,Linux服务器都会向Windows服务器发送一个字符串。

我从来没有做过类似的事情,并且想知道从哪里开始。从我迄今为止所做的研究来看,似乎使用Netcat创建Telnet连接可能会起到作用。如果是这样,样板代码是什么样的? Netcat是一个非常古老的平台,从谷歌搜索的例子中找不到多少。

我也对可以解决这个问题的其他解决方案持开放态度。

我想要做的工作流程如下:

A user hits PHP file end-point - > PHP or the server it runs on sends a string to the Windows Server - > Windows server receives the string and starts a script

2 个答案:

答案 0 :(得分:0)

你可以从PHP中调用winexe。我自己没有这样做,但我已经读到这应该可以解决问题了。

winexe Sourceforge

Some sample code from within PHP here

我希望这对你有所帮助

此致

利安

答案 1 :(得分:0)

您可以考虑使用以下任一方法将此公开为Windows服务器上的端点:

IIS + PHP
IIS + CGi/Perl
IIS + Asp

或其他任何内容。

在IIS(Windows Web服务器)上公开一个简单页面,并在Linux服务器收到请求时从您的Web服务登录(Linux服务器)中点击该页面。 Windows服务器公开的脚本/页面可以执行所需的脚本。 应该保护在Windows服务器上公开的页面/端点,以便任何人都不能执行它(禁用公共ips。在防火墙规则中仅限制Linux服务器Ip等。)

样品

  • 在您的php网络服务中 - $my_var = file_get_contents('http://WinServerPrivateIp/runScript.pl'); // Make it asynchronous if needed
  • Windows中的
  • runScript.pl - 将执行您的实际脚本。