NGINX 后面的 Dockerized Apache + SSL 作为反向代理

NGINX 后面的 Dockerized Apache + SSL 作为反向代理

我有两个容器,其中一个容器运行 NGINX 作为其他几个容器的反向代理。另一个容器运行 Apache,并启用和配置了 SSL。我见过几个配置示例,据我所知,NGINX 代替 Apache 处理证书,而只是将其他所有内容通过管道传输到一些非 SSL Apache。

现在,我宁愿让 Apache 处理自己的证书,特别是因为它使我在管理它们时更加轻松(使用 dockerized letsencrypt,它从相关的 Apache 容器挂载卷并将证书放在所有正确的位置)。

问题是我找不到 NGINX 的任何示例配置来将所有内容透明地代理到 Apache 容器。

答案1

这是因为 nginx 无法做到这一点。

它可以终止 SSL 连接,但不能让其继续连接。

您至少有两个选择:

  1. 将 SSL 证书粘贴到 letsencrypt 容器和 nginx 容器之间共享的小型 Docker 卷中。在此过程中,您还可以让 nginx 拦截 Let's Encrypt 挑战,这可能会简化您的架构。
  2. 使用 haproxy 代替 nginx。与 nginx 不同,haproxy 能够传递 SSL 连接(并执行在容器化设置中有用的各种其他操作)。请注意,这需要 SNI 支持,因此这些网站将无法被不支持 SNI 的旧 Web 客户端访问。

相关内容