NodeJS:使用没有端口的域访问

Posted

技术标签:

【中文标题】NodeJS:使用没有端口的域访问【英文标题】:NodeJS: access using domain without port 【发布时间】:2017-07-03 17:08:41 【问题描述】:

我跟随this tutorial 在服务器上部署我的应用程序NodeJS。 我的问题是,我只能使用 domain:port (example.com:1234) 而不是域名 (example.com) 访问服务。

如何在不将端口添加到地址/域名的情况下配置我的应用以访问服务?

【问题讨论】:

【参考方案1】:

TCP 连接始终要求您(客户端)指定端口。您无需指定端口即可在浏览器中访问domain.com,因为您的浏览器隐式连接到常规端口:80 用于 HTTP,443 用于 HTTPS。 p>

您的应用程序服务器需要绑定到这些端口之一才能实现您的目标。

编辑:刚刚浏览了您链接到的教程。由于您的应用程序位于反向代理后面,因此您需要 nginx 拥有 80/ 443(默认情况下应该这样做)。您可以将应用服务器绑定到您想要的任何端口,只要反向代理配置与之匹配即可。

【讨论】:

我没有明白你在编辑的最后一句话中的意思。你能详细说明一下吗? 当然。您的应用架构有两个高级组件:节点 http 服务器和 nginx Web 服务器。当用户访问您的站点时,他们实际上是在连接到 nginx,而不是节点。建立连接后,nginx 将数据传递到节点服务器(因此,“代理传递”),它实现了您的实际业务逻辑。真正面向 web 并接收连接的进程是需要拥有默认 http 端口的进程,在这种情况下,就是 nginx

以上是关于NodeJS:使用没有端口的域访问的主要内容,如果未能解决你的问题,请参考以下文章

nodejs如何检查哪个IP访问80端口

拒绝用户访问(NodeJS 和 MySQL)

如何在端口xxxx上运行nodejs服务器并通过另一个端口访问它?

仅使用 Nginx 反向代理启用 Docker 端口访问

如何使用 JWT 通过 NodeJS 客户端库访问 Google Directory (Admin SDK)?

JAVA跨域资源访问CORSFilter