【问题标题】:How to access node.js from outside of local network (LAN)? [closed]如何从本地网络 (LAN) 外部访问 node.js? [关闭]
【发布时间】:2016-02-10 23:19:24
【问题描述】:

我正在服务器上运行一个 node.js 应用程序,它在本地主机上运行良好,但我无法从局域网之外的其他系统远程访问它。

这主要是因为我的服务器(Windows Server 2003)和 Internet 之间有一个路由器,它不允许打开端口 3000。

所以我想监听 80 端口,但如果请求是针对特定 URL,我想将其重定向到 3000 端口。

我该怎么做?任何帮助将不胜感激。

【问题讨论】:

  • 分享运行服务器的nod​​e.js代码。你在 ip 0.0.0.0 上听了吗?
  • 而如果你想在软件端代理80端口到3000端口,我认为Node做不到。您需要 Apache 或 nginx 服务来重定向请求
  • @cricket_007 Node 绝对可以做到这一点,尽管它需要以 root 身份运行才能绑定到特权端口。然后它可以使用process.setuid 降级并继续以普通用户身份运行,就像 Apache 和 Nginx 一样。
  • @Paulpro - 嗯。很高兴知道。不过,我不希望 Web 服务以特权用户身份运行
  • @cricket_007 这就是降级很重要的原因。在实际开始处理任何请求之前,它会在启动初始化期间降级,就像任何其他 Web 服务器一样。

标签: javascript node.js windows-server-2003


【解决方案1】:

您需要设置 Web 服务器 (IIS) 以侦听端口 80 上的外部连接并(代理)将其转发到端口 3000 上的节点服务器。Windows 2003 是 EOL(软件生命周期结束),因此请记住这一点.对于Linux和nginx等更成熟的IT基础设施,DigitalOcean写了this great tutorial,可以在Windows上运行nginx。

【讨论】:

  • 感谢这是最接近我的解决方案的方法!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-16
  • 1970-01-01
  • 2014-08-19
  • 2018-11-28
  • 2012-04-07
相关资源
最近更新 更多