【发布时间】:2021-04-13 22:32:17
【问题描述】:
我完全停止了 Windows Server 2019 上的 IIS,并在端口 80 上为我的 NodeJS 应用程序提供服务,如下所示:
const express= require('express');
const app=express();
...
...
...
const hostname = '0.0.0.0';
const port = 80;
app.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
但是 Node 没有远程服务。它适用于 localhost:80
我根据我在 StackOverflow 找到的答案设置了主机名 = '0.0.0.0'。服务器的公网 IP 也不行。
打开 IIS 并设置站点时,我可以看到 index.html 文件很好,所以端口 80 可以工作。
是服务器问题,还是 node.js 问题?
我开始节点
node index.js
谢谢。
【问题讨论】:
-
如果 IIS 正在运行,则端口 80 被占用,您不能这样做。使用另一个端口。配置 IIS 以转发给它。 IIS 可能会使用您的 Node 进程不使用的防火墙规则。
-
我相信你是对的。我在防火墙上启用了端口 3000,它可以远程工作。删除端口 80 的当前规则并创建新规则是一种不好的做法吗?运行 node.js 时 IIS 服务已关闭,但如前所述,它仍然无法正常工作。
-
我将 IIS 设置为转发到您的 Node 应用程序而不是直接公开它。
-
我正在安装应用程序请求路由扩展和 URL 重写。完成后我会尽快通知你。谢谢塔德曼。
-
塔德曼。我添加了一个反向代理规则,它运行良好。当我添加一个规则以打开端口 80 而不删除默认规则时,它也有效,但我听取了您的建议,并将 IIS 转发到我的 Node 应用程序。其他社区用户可能会遇到同样的问题,我想接受你的回答来帮助别人,但我相信 SO 不会让我接受评论作为答案,对吗?
标签: node.js