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

时间:2019-08-16 01:57:47

标签: node.js heroku

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

app.listen(process.env.PORT||9000,()=>{
    console.log('Server is running on 9000!')
})

我想设置Nodejs与Nodejs的通信。我从stackoverflow得到了帮助, 使用npm request程序包将发布请求从运行在端口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地址来创建通信

1 个答案:

答案 0 :(得分:0)

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

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

对于heroku,我认为您不能这样做。但是,根据文档,端口80和443已打开,因此,如果将端口更改为其中之一,则可以使用!

奖金:

如何在Linux上打开端口

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

sudo ufw allow 9000

此命令将打开您的端口9000,并允许外部请求重新请求您的nodejs服务器

我建议您先阅读ufw的文档,然后再看一眼tutorial