Node.js脚本加载不从浏览器(局外人)加载但从命令加载(localhost)

时间:2013-02-19 00:55:45

标签: javascript node.js

我已经在基于Linux的vps(使用SSH)上成功安装了Node.JS和Balloons.IO聊天室。在ssh命令中键入curl http://mydomain.com:9191/时,我可以看到html已加载。但是,当我尝试从浏览器访问同一页面时,需要一些时间加载,然后说无法访问页面。知道为什么吗?

1 个答案:

答案 0 :(得分:1)

我的常见诊断步骤:


1)检查您的应用实际上是否正在侦听端口,您可以执行以下操作:

sudo netstat -anp | grep :9191

如果您看到类似0.0.0.0:9191的内容,您应该会看到自己的应用会听your.ip.address.here:9191127.0.0.1:9191,然后它只会在本地收听,因此您将无法覆盖它。< / p>

2)确保您的防火墙没有阻止这些端口,如果您使用iptables,可以查看:

sudo iptables --list

这将打印防火墙的规则,您可以检查端口是否被阻止(或允许)。

3)尝试在本地连接。我的第三步通常是在curl本地尝试,你已经完成了这一步,但是对于其他登陆,你可以这样做:

curl http://localhost:9191/

看看你得到了什么

4)尝试远程连接。如果上面的所有内容看起来都很好,请尝试从远程主机运行一个详细的卷曲,看看你得到了什么:

curl -v http://mydomain.com:9191/

这将显示标题和正文输出,以便您可以查看远程主机是否响应;如果没有,那么检查原始端口是否可以使用telnet访问:

telnet mydomain.com 9191

如果成功将打印出如下内容:

Trying your.ip.address.here...
Connected to mydomain.com.
Escape character is '^]'.

如果失败,它只会在Trying...挂起,如果失败则防火墙阻塞端口,主机阻塞端口,或者您的应用没有收听端口。如果您的上述测试通过,那么请与您的主人联系,因为其他内容可能会出现,您应该能够获得他们的支持。