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

标签 apache docker ssl node-red portainer

我在 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/

相关文章:

encryption - Diffie-Hellman 代替 SSL?

php - 与我的 PHP 安装混淆

apache - Apache 中特定虚拟主机的 HTTP 到 HTTPS

time - Docker 容器 : time/timezone wrong

docker - 如何保存 Docker 容器状态

ssl - openshift ssl 边缘终止风险

java - 如何使用 Java Apache poi 在 Excel 文件中插入多张图片?

perl - 你如何使用 Apache "ScriptInterpreterSource Registry-Strict"指令?

java - docker 在错误的端口上运行图像

PHP-PKPass 不适用于 iOS 7 添加使用 PHP 中的 S/MIME signing-time 属性对通行证进行签名的日期和时间