VPS 上的 Nodejs 在我的网络上仅 运行
Nodejs on VPS only running on my network
安装在我 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');
});
好吧,在您的问题中,您说您希望世界上每个人都可以访问 Node 应用程序,或者根本没有人可以访问。但是,如果您 VPS 提供商限制您只能在内部网络上进行 运行 操作,那么您将无法完成您的要求。
网络规则根本不允许。
不过,话虽如此,我还是要建议更改您的 Express 应用程序。它应该是这样的:
let express = require('express');
let app = express();
app.listen(3000);
上面的代码将以最简单的方式直接使用 Express 将您的 Node 应用程序绑定到端口 3000。这可能就是你想要的。
另外:请注意,如果您打算构建 public 服务,您可能需要做以下两件事之一:
- 将您的 Express 服务器绑定到端口 80(对于 HTTP),或者
- 使用网络服务器代理从端口 80 (HTTP) 到端口 3000(本地)的请求。
我把站点的 IP 添加为 listen 函数的第二个参数解决了它。
http.listen(3000, "xx.xxx.xx.xxx", function(){
console.log('Server listening to port 3000');
});
安装在我 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');
});
好吧,在您的问题中,您说您希望世界上每个人都可以访问 Node 应用程序,或者根本没有人可以访问。但是,如果您 VPS 提供商限制您只能在内部网络上进行 运行 操作,那么您将无法完成您的要求。
网络规则根本不允许。
不过,话虽如此,我还是要建议更改您的 Express 应用程序。它应该是这样的:
let express = require('express');
let app = express();
app.listen(3000);
上面的代码将以最简单的方式直接使用 Express 将您的 Node 应用程序绑定到端口 3000。这可能就是你想要的。
另外:请注意,如果您打算构建 public 服务,您可能需要做以下两件事之一:
- 将您的 Express 服务器绑定到端口 80(对于 HTTP),或者
- 使用网络服务器代理从端口 80 (HTTP) 到端口 3000(本地)的请求。
我把站点的 IP 添加为 listen 函数的第二个参数解决了它。
http.listen(3000, "xx.xxx.xx.xxx", function(){
console.log('Server listening to port 3000');
});