【问题标题】:Serving Multiple Sites via HTTPs using a web-service and Docker使用 Web 服务和 Docker 通过 HTTPs 服务多个站点
【发布时间】:2018-11-03 13:21:21
【问题描述】:

首先,这是学习和分享新信息的好地方。

现在我在同一台服务器上托管两个网站时遇到了问题,但在描述我的问题之前,我将使用一些术语来让事情变得更容易。

网站设置

  • 服务器操作系统 - CentOS 7 x64,Docker 版本 - 18.03.0-ce,构建 0520e24
  • 第一个网站:example.com - 通过端口 80 上的 Nginx 托管(在主机上作为服务运行,通过 Docker 容器)(重定向到 443):带有 HTML / CSS 代码的静态网站。
  • 第二个网站http://art.example.com:8080/:通过 this Docker Image
  • 服务于端口 8080
  • SSL - 对上述两个域都使用 LetsEncrypt。

要求

  • 通过 HTTP 为两个站点(可能还有更多站点)提供服务,而不会破坏其中任何一个站点。
  • 这是因为当我使用 art.example.com:8080 浏览第二个网站时,它可以正常工作,但如果我浏览第一个网站,然后对第二个网站的后续请求以某种方式开始通过 HTTPs 进行,导致页面无法加载。

问题

  • 可以通过 Nginx VHosts(或任何其他替代方案)通过端口 80|443 为两个站点(以及更多站点)提供服务,而无需使用不同的端口,即:8080强>第二个网站?这是在上面提到的 URL 中没有任何端口,而只有域名。

  • 或者,有没有办法将流量转发到不同端口上的 Docker 服务,而主要的主要 Web 服务侦听端口 80|443?我需要做哪些配置更改?

我在这个论坛上进行了尽可能多的搜索,但没有得到太多。

如果需要我提供更多信息,请告诉我。

提前致谢!

【问题讨论】:

    标签: docker nginx https


    【解决方案1】:

    解决方案:根据这位 Docker image 维护者 - kdelfour 的推荐以及 BretFisher 的快速推荐,我们可以将 第一个网站 重新制作为像 第二个网站 这样的 Docker 容器,然后使用 Traefik 作为反向代理来管理 SSL 对它们进行负载平衡

    将此标记为已解决,直到找到更好的解决方案,干杯!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-22
      • 2011-02-25
      • 1970-01-01
      • 1970-01-01
      • 2013-02-12
      • 2018-03-31
      • 1970-01-01
      相关资源
      最近更新 更多