在AWS上从PHP ping一个Node.js服务器

时间:2011-03-03 00:22:34

标签: php node.js amazon-web-services

我在node.js中编写了一个很长的过程,但是我希望我的应用程序控件的PHP端能够完成它。我的节点是这样的:

var http = require('http');

http.createServer(function (req, res) {
  console.log('Got request')

  try{
    doProcedure()
  } catch(e) {
    console.log('Really bad error while trying to do the procedure:')
    console.error(e.stack ? e.stack : e)
  }

}).listen(8124, "127.0.0.1");

当我在本地计算机上运行时,http://localhost:8124会正确触发。在aws上,我添加了8124端口,但是mydomain.com:8124的请求没有被节点选中。

Port settings in AWS

我尝试停止httpd,然后让节点侦听端口80,以排除端口没有正确转发,但它仍然没有看到任何内容。

我想是两个问题:

  1. 如何将节点侦听作为守护进程,以便我可以传递请求?(“更新用户x”,“更新用户y”,“更新所有用户”等)
  2. 如何从php中ping该守护进程以在AWS环境中启动这些过程?
  3. 奖金问题:我应该采取更好的方式吗?

    谢谢大家,
    〜约旦

3 个答案:

答案 0 :(得分:4)

如果省略listen()的第二个参数,节点将侦听所有IP地址。这样,您可以在本地运行相同的代码进行测试,也可以在EC2实例上运行。

在catch块中,您可能还希望向客户端发回HTTP错误响应。

答案 1 :(得分:2)

你应该有一个10. * ip iirc for aws,你的弹性/动态ip不能被绑定

答案 2 :(得分:0)

您是否尝试在createServer.listen()调用中使用服务器的IP地址(而不是127.0.0.1)?