如何在浏览器中访问远程node.js应用程序,而不是在localhost

时间:2016-02-25 23:34:19

标签: javascript node.js apache server vps

我试图建立一个简单的“#Hello”世界" node.js app。

我创建了以下 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时,我收到消息&#34;正在按照预期收听*:8080&#34;我将我的浏览器指向localhost:8080,我看到HTML页面根据需要说出&#34; Hello worlddd&#34 ;.

现在,我尝试在我的虚拟专用服务器上执行相同操作,因此我可以从不同的计算机访问相同的应用程序,但我得到的只是连接超时。我已按照以下步骤操作:

  • 在我的VPS上安装node.js
  • 通过npm install --save express@4.10.2
  • 安装快递
  • 使用IP 192.123.123.12将我的index.js文件上传到我服务器上的var/www/html文件夹(例如,这不是我的真实IP)。
  • 通过PuTTY访问服务器,并运行node index.js,我得到"listening on *:8080",所以我知道node.js正在运行。
  • 现在我将浏览器指向http://192.123.123.12:8080,大约20秒后,我收到浏览器错误:&#34;连接已超时&#34;。
  • 我已尝试收听端口:80,但我收到此端口已被使用的错误。

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

1 个答案:

答案 0 :(得分:4)

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

您只需要打开端口TCP 8080入站,您就可以访问node.js服务器了!