在AWS上从PHP ping Node.js服务器
我在node.js中编写了一个很长的过程,但我希望应用程序控件的PHP端能够启动它。我的节点类似于:在AWS上从PHP ping Node.js服务器,php,node.js,amazon-web-services,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 pro
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");
当我在本地机器上运行此命令时,将正确触发事件。在aws上,我添加了8124端口,但节点无法接收对mydomain.com:8124的请求
我尝试停止httpd,然后让节点监听端口80,以排除端口未正确转发的可能性,但它仍然没有看到任何结果
我想有两个问题:
~Jordan您是否尝试在createServer.listen()调用中使用服务器的IP地址(而不是127.0.0.1)?如果忽略listen()的第二个参数,节点将侦听所有IP地址。这样,您可以在本地运行相同的代码进行测试,也可以在EC2实例上运行相同的代码
在catch块中,您可能还希望将HTTP错误响应发送回客户端。您应该有一个10.*ip iirc for aws,您的弹性/动态ip不能绑定到侦听50.17.254.0:8124时出现错误:“错误:EADDRNOTAVAIL,无法分配请求的地址”客户端没有查看任何内容,我只是在同一台机器上从php发出一个HTTP触碰来启动这个过程。叮叮!省略IP可以让事情顺利进行,这是一个很好的本地/生产技巧。谢谢我的印象是,我的弹性IP是我的域连接到的IP,也是任何Web服务器都应该监听的IP。在哪里可以找到这个10.*ip?省略要侦听的ip会使服务器侦听所有ip并完美地工作。/sbin/ifconfig-a,在我的EC2实例上,我有一个10.*ip,我有一个用于连接的弹性外部ip。extip实际上并没有绑定到服务器,就像端口转发1:1nat之类的