首页 > 解决方案 > 在运行 HTTPS 的 IIS 上运行 Nodejs 和 React 时遇到问题

问题描述

在使用 HTTPS 时,我在将 NodeJS 作为 React 应用程序(网站)的后端运行时遇到问题。NodeJS 在端口 3001 上运行,等待请求。当 React 在 HTTP 上的 IIS 上运行并查询 NodeJS (http://localhost:3001) 时,一切都很好。但是,如果我在 React 应用程序上部署 SSL,那么 React 和 NodeJS 之间的通信就会失败。我相信这是HTTPS和HTTP交互的安全限制。

那么问题是,如何在端口 3001 上运行节点但在 HTTPS 上运行以处理 HTTPS 源请求?

我查看了反向代理(https://dev.to/petereysermans/hosting-a-node-js-application-on-windows-with-iis-as-reverse-proxy-397b),查看了 IISnode 没有t 似乎不再受支持,并阅读了在 HTTPS 上运行 NodeJS(这似乎不是一个可行的解决方案)。

寻找任何指导和方向。

非常感激。

标签: node.jsreactjshttps

解决方案


好的,通常在您询问后 10 分钟,您就会弄清楚。

这就是我解决问题的方式,更有知识的人可能会纠正我。

  1. 在 IIS 上,你有你的 HTTPS React 网站
  2. 在 IIS 上创建第二个网站(也安装了 SSL,因此可以通过 Https 访问)。
  3. 在第二个网站上,您安装反向代理解决方案 ( https://dev.to/petereysermans/hosting-a-node-js-application-on-windows-with-iis-as-reverse-proxy-397b ) 并路由对 NodeJS 应用程序上的端口 3001 的请求。

实际上,这意味着在 Https 上运行的 React 应用程序现在可以在 Https 上调用 NodeJS(例如https://mynode.mysite.com),并且反向代理将请求转发到端口 3001(或您正在运行的端口)上的 NodeJS 应用程序节点)。

如果我错了(这对我有用)或走了很长的路,请随时纠正。

谢谢你。


推荐阅读