如何使用 Apache 重定向对 Node-Red 的请求?

How to use Apache to redirect requests for Node-Red?

我 运行在 AWS Ubuntu 中 docker 服务器(由 Portainer 管理)和这两个 运行ning 容器:

1 - NodeRed(服务于我的 APIs)
2 - Apache(托管使用上述 NodeRed 的 APIs 的站点)

我已经为此服务器配置了一个域,并将 apache 设置为使用 SSL。 Apache 运行 通过 HTTPS 与我的站点连接正常,但问题是 NodeRed(端口 1080 中的 运行s)未在 SSL 中配置为 运行。这会导致我的网站出现故障,因为我的 API 端点在 HTTP 下 运行ning 并且由于安全原因被浏览器阻止。

问题是:有没有办法在 apache 中创建某种 "mapping" 来接收来自 HTTPS 的请求并重定向到 HTTP 中的 NodeRed(两者 运行ning 在同一个服务器)?

我的想法是创建一个像 https://api.mysite.com 这样的子域,它发送对 apache 的请求,然后 apache 将它重定向到我的 NodeRed。这可能吗?

API不想暴露就没必要。由于您的 apache 运行 正确并且两个容器都在同一主机上 运行,因此只需使用代理将 API 请求转发到 API 容器。

您可以通过在您的 Apache 配置中添加两行来实现此目的,即

ProxyPass /api/ http://127.0.0.1:1080/
ProxyPassReverse /api/ http://127.0.0.1:1080/