Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何使用Nodejs监听我的公共IP地址端口_Node.js_Heroku - Fatal编程技术网

Node.js 如何使用Nodejs监听我的公共IP地址端口

Node.js 如何使用Nodejs监听我的公共IP地址端口,node.js,heroku,Node.js,Heroku,我希望使用我的公共IP地址而不是本地主机访问我的Nodejs应用程序。现在,为了在localhost上托管我的应用程序,我正在做: app.listen(process.env.PORT||9000,()=>{ console.log('Server is running on 9000!') }) 我想设置Nodejs到Nodejs的通信。我得到了stackoverflow和 使用npmrequest包将post请求从运行在端口3000上的我的一个nodejs服务器发送到运行在

我希望使用我的公共IP地址而不是本地主机访问我的Nodejs应用程序。现在,为了在localhost上托管我的应用程序,我正在做:

app.listen(process.env.PORT||9000,()=>{
    console.log('Server is running on 9000!')
})
我想设置Nodejs到Nodejs的通信。我得到了stackoverflow和 使用npm
request
包将post请求从运行在端口3000上的我的一个nodejs服务器发送到运行在端口9000上的一个

const request = require("request");

var options = {
    method: 'POST',
    url: 'http://localhost:9000/',
    headers: { 'Content-Type': 'application/json' },
    body: { id: 1 },
    json: true
};

request(options, function (error, response, body) {
    if (error) throw new Error(error);

    // console.log(body);
    // Process the body and return the response.
    // return res.send(body);
});

但是,我想使用公共IP地址,因为我想在Heroku上托管我的一台服务器。我需要公共IP地址来创建通信

如何使您的node.js在公共IP上侦听

实际上,您的nodejs服务器在端口9000上侦听,这意味着此端口上的任何通信都将被侦听。您唯一需要的是打开此端口以允许来自“外部”的请求

对于heroku,我认为你做不到这一点。但是,根据文档,端口80和443已经打开,因此如果您将端口更改为其中一个,它将工作

奖金:

如何打开端口(在Linux上)

您可以使用ufw,一个简单而著名的防火墙管理器

sudo ufw allow 9000
此命令将打开端口9000并允许外部请求重新请求nodejs服务器


我建议您阅读之前的文档,看看这个好的

到目前为止,您在部署应用程序方面做了哪些尝试?您有服务器设置和访问权限吗?是否要对应用程序进行dockerize?