Javascript VPS上的节点仅在我的网络上运行
安装在我的VPS上的Nodejs服务器只能在我的网络上访问。外部世界的人无法访问它。如果它是在线的,那么它应该可以在世界各地访问,也可以不在任何地方访问。怎么办 我的js文件中的代码:Javascript VPS上的节点仅在我的网络上运行,javascript,node.js,express,centos,vps,Javascript,Node.js,Express,Centos,Vps,安装在我的VPS上的Nodejs服务器只能在我的网络上访问。外部世界的人无法访问它。如果它是在线的,那么它应该可以在世界各地访问,也可以不在任何地方访问。怎么办 我的js文件中的代码: var app = require('express')(); var http = require('http').Server(app); // Also tried http.listen(3000, "0.0.0.0", function(){ http.listen(3000, function(){
var app = require('express')();
var http = require('http').Server(app);
// Also tried http.listen(3000, "0.0.0.0", function(){
http.listen(3000, function(){
console.log('Server listening to port 3000');
});
好吧,在你的问题中,你说你想让世界上的每个人,或者任何人都可以访问节点应用程序。然而,如果您的VPS提供商限制您仅在内部网络上运行,则不可能按您的要求执行 网络规则根本不允许这样做 尽管如此,我还是建议您更改Express应用程序。下面是它的外观:
let express = require('express');
let app = express();
app.listen(3000);
上面的代码将直接使用Express以最简单的方式将您的节点应用程序绑定到端口3000。这可能是你想要的
另外:请注意,如果您打算建立公共服务,您可能需要做以下两件事之一:
- 将Express服务器绑定到端口80(用于HTTP),或
- 使用web服务器代理从端口80(HTTP)到端口3000(本地)的请求
http.listen(3000, "xx.xxx.xx.xxx", function(){
console.log('Server listening to port 3000');
});
我认为这是一个网络配置问题,而不是一个特定的节点问题。几乎有10个人说他们无法加载页面,如果我关闭Wifi并切换到手机上的移动数据,我也会有同样的感受。页面永远无法加载此配置的所有内容。80号端口有什么东西吗?试试这一个,因为可能出于任何原因端口3000在您的vps上被阻塞了?或者你的vps设置有问题。因为这个命令必须工作。(我假设您已经提供了一些路由,因为如果没有,那么就不会返回任何内容)我根本不需要上面的http变量?我还需要运行socket.io,它需要http。我向您展示的只是如何简单地运行express应用程序。如果你需要使用socketio/其他东西,你可以添加任何你需要的东西。