Node.js脚本加载不是从浏览器(外部)加载,而是从命令(localhost)加载

Node.js script loading not loading from browser (outsider) but loading from command (localhost)

本文关键字:加载 localhost 命令 浏览器 js 脚本 Node 外部      更新时间:2023-09-26

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

我常用的诊断步骤:


1) 检查你的应用程序是否真的在监听它应该监听的端口,你可以使用:

sudo netstat -anp | grep :9191

你应该看到你的应用程序在监听0.0.0.0:9191your.ip.address.here:9191。如果你看到类似127.0.0.1:9191的东西,那么它只是在本地监听,所以你无法访问它。

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

sudo iptables --list

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

3) 尝试本地连接。我的第三步通常是在curl上本地尝试,您已经完成了这一步,但对于其他落地,您可以执行以下操作:

curl http://localhost:9191/

看看你能得到什么

4) 尝试远程连接。如果上面的一切看起来都很好,请尝试从远程主机运行一个详细的curl,看看会得到什么:

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

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

telnet mydomain.com 9191

如果成功,将打印类似以下内容:

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

如果它失败了,它将挂在Trying...上。如果它失败,那么你的防火墙正在阻止端口,你的主机正在阻止端口或者你的应用程序没有监听端口。如果你的上述测试通过了,那么请联系你的主机,因为可能有其他问题,你应该能够从他们那里获得支持。