我在 AWS 中运行一个带有 docker 服务器(由 Portainer 管理)的 Ubuntu 以及这两个正在运行的容器:
1 - NodeRed(服务于我的 API)
2 - Apache(托管使用上述 NodeRed 的 API 的站点)
我已经为此服务器配置了一个域,并将 apache 设置为使用 SSL。 Apache 通过 HTTPS 在我的网站上运行正常,但问题是 NodeRed(在端口 1080 中运行)未配置为在 SSL 中运行。这会导致我的网站出现故障,因为我的 API 端点正在 HTTP 下运行,并且出于安全原因被浏览器阻止。
问题是:有没有办法在 apache 中创建某种“映射”,从 HTTPS 接收请求并重定向到 HTTP 中的 NodeRed(两者在同一服务器上运行)?
我的想法是创建一个类似 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/
关于apache - 如何使用 Apache 重定向对 Node-Red 的请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55975504/