如何使 node.js 服务器无法通过浏览器访问但仍可用于 nginx?
how to make node.js server not accesible via browser but still available to nginx?
我正在尝试 运行 我的 node.js 应用程序在端口 3000 上。我正在使用 nginx 作为反向代理服务器与 node.js 进行内部通信。 Nginx 工作正常,但如果我尝试 运行 使用服务器 ip 和端口 node.js 服务器也可用。
我希望我的 node.js 服务器无法通过浏览器访问,它只能通过内部的 nginx 服务器进行通信。
我运行在 nginx 服务器的 http 和 https 上连接我的节点服务器。节点服务器和 nginx 服务器都在装有 CentOS 的虚拟机上 运行ning(Linux)。我希望即使通过我的 windows 笔记本电脑上的任何浏览器都不能从虚拟机外部访问 node.js 服务器,也不能从外部世界访问
谁能指导我如何实现它?
I want that my node.js server is not accessible via browser and it only communicates via nginx server internally.
我假设 "via browser",你的意思是通过其他用户,而不是本地主机上的浏览器。我还假设您正在使用内置的 HTTP/S 服务器,直接使用或通过 Express 之类的东西使用。最后,我假设 Nginx 在同一台主机上 运行。如果这些假设不正确,您应该编辑您的问题以澄清并显示一些代码。
现在,当您调用 .listen()
启动服务器时,您可以传递可选参数来设置端口 和 绑定主机。例如,如果我这样做:
server.listen(3000, '127.0.0.1', ...);
这将启动一个侦听端口 3000
的服务器,但只接受来自 localhost
、127.0.0.1
的连接。这意味着该机器上的任何东西都可以连接到 :3000
并发出请求,但来自其他主机的请求将不起作用。
我正在尝试 运行 我的 node.js 应用程序在端口 3000 上。我正在使用 nginx 作为反向代理服务器与 node.js 进行内部通信。 Nginx 工作正常,但如果我尝试 运行 使用服务器 ip 和端口 node.js 服务器也可用。
我希望我的 node.js 服务器无法通过浏览器访问,它只能通过内部的 nginx 服务器进行通信。
我运行在 nginx 服务器的 http 和 https 上连接我的节点服务器。节点服务器和 nginx 服务器都在装有 CentOS 的虚拟机上 运行ning(Linux)。我希望即使通过我的 windows 笔记本电脑上的任何浏览器都不能从虚拟机外部访问 node.js 服务器,也不能从外部世界访问
谁能指导我如何实现它?
I want that my node.js server is not accessible via browser and it only communicates via nginx server internally.
我假设 "via browser",你的意思是通过其他用户,而不是本地主机上的浏览器。我还假设您正在使用内置的 HTTP/S 服务器,直接使用或通过 Express 之类的东西使用。最后,我假设 Nginx 在同一台主机上 运行。如果这些假设不正确,您应该编辑您的问题以澄清并显示一些代码。
现在,当您调用 .listen()
启动服务器时,您可以传递可选参数来设置端口 和 绑定主机。例如,如果我这样做:
server.listen(3000, '127.0.0.1', ...);
这将启动一个侦听端口 3000
的服务器,但只接受来自 localhost
、127.0.0.1
的连接。这意味着该机器上的任何东西都可以连接到 :3000
并发出请求,但来自其他主机的请求将不起作用。