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

我有两个容器,其中一个运行NGINX作为其他容器的反向代理。 其中一个容器正在运行Apache,启用并configuration了SSL。 我已经看到了几个configuration示例,据我所知,NGINX处理的是证书而不是Apache,而且只是通过其他所有的东西传递给一些非SSL的Apache。

现在,我宁愿让Apache处理它自己的证书,尤其是因为它使我的生活更轻松(使用dockerized letsencrypt,它从相关的Apache容器安装卷并将证书放在所有正确的位置)。

问题是,我找不到任何configurationNGINX只是透明地代理一切到Apache容器。

那是因为nginx不能这样做。

它可以终止SSL连接,但不能通过SSL连接。

你至less有两个select:

  1. 将SSL证书粘贴在您的letsencrypt容器和您的nginx容器之间共享的小型Docker卷中。 当你处于这个状态时,你可以让nginx拦截让我们encryption的挑战,这可能会简化你的体系结构。
  2. 使用haproxy而不是nginx。 与nginx不同的是,haproxy能够通过SSL连接(以及在集装箱设置中执行各种其他有用的事情)。 请注意,这需要SNI的支持,所以这样的网站将无法访问古老的networking客户端,不能支持SNI。