如何在浏览器中访问远程 node.js 应用程序,而不是在本地主机上

How to access remote node.js app in browser, not on localhost

我正在尝试设置一个简单的 "Hello world" node.js 应用程序。

我创建了以下 index.js 文件:

var app = require("express")();
var http = require("http").Server(app);

app.get("/", function(req, res){
    res.send("<h1>Hello worlddddd</h1>");
});

http.listen(8080, function(){
    console.log("listening on *:8080");
});

当我打开本地控制台并执行 node index.js 时,我收到了预期的消息 "listening on *:8080"。我将浏览器指向 localhost:8080,我看到 HTML 页面显示 "Hello worlddd",如我所愿。

现在,我正尝试在我的虚拟专用服务器上做同样的事情,这样我就可以从不同的计算机访问同一个应用程序,但我得到的只是连接超时。我已执行以下步骤:

有人知道我做错了什么吗?我使用了错误的端口吗?我指向错误的 URL 了吗?我需要修改我的服务器首选项吗? (运行在 CentOS 上使用 Apache)。我只找到了很多教你如何在本地计算机上 运行 一个 node.js 应用程序的教程(将浏览器指向 localhost:8080),但我需要它 运行 在我的远程服务器上,以便多台计算机可以访问同一个应用程序。

问题是您当前的过滤器 (iptables) 会阻止流量,除非您明确允许。

您只需要打开 TCP 8080 入站端口,您应该能够到达您的 node.js 服务器!