在没有端口的情况下运行 Node js 应用程序

Lal*_*rma 4 https tcp http node.js express

我想运行我的应用程序,而不在端口 80 上为我当前的 IP 地址分配任何端口。这如何可能。

O. *_*nes 11

如果您的 Node.js 应用程序是 Web 服务器,则无法删除该端口。没有端口,没有网络服务器。试图制造一个没有端口的网络服务器就像试图制造一个没有铁路的机车一样。

不过,您可以使用默认端口。当用户向浏览器提供不带端口的 URL 时,他们会自动应用默认端口。http://example.com/对于类似或 的URL,http://10.11.12.13/默认端口是 80。对于https://example.com443,您需要使用https服务器类。

因此,您可以让您的服务器侦听端口 80。

在开发过程中,您会遇到这种方法的问题。在 OSX、Linux 和其他 UNIX 派生操作系统上,只有特权 ( root) 用户才能运行使用小于 1024 的端口号的服务器。编辑/运行/测试的典型开发周期是一个巨大的麻烦,并且存在安全漏洞,当你需要特权才能运行。这就是 node.js 示例使用端口 3000 的原因。

在生产中,许多人使用 nginx 作为反向代理服务器,将来自端口 80 的 http 请求或来自端口 443 的 https 请求中继到端口 3000 的 Node.js 服务器。您可以阅读有关如何执行此操作的信息;这远远超出了 Stack Overflow 答案的范围,