Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript VPS上的节点仅在我的网络上运行_Javascript_Node.js_Express_Centos_Vps - Fatal编程技术网

Javascript VPS上的节点仅在我的网络上运行

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(){

安装在我的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(){
    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(本地)的请求

我的坏毛病是将站点的IP添加为侦听函数的第二个参数,从而解决了这个问题

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/其他东西,你可以添加任何你需要的东西。