如何使用 apache 重定向到 docker 容器

How to use apache to redirect to docker container

我在 Ubuntu VM 上有两个 docker 容器 运行 Tornado 应用程序,分别名为 app1app2。 VM 有一个域名 ubuntu.somesite.com。我可以通过 ubuntu.somesite.com:8080 的 docker 端口转发访问其中之一。相反,我希望这两个应用程序都可以在 ubuntu.somesite.com/app1ubuntu.somesite.com/app2 上访问。实现这一目标的最佳方法是什么?我尝试使用 apache 虚拟主机,但没有取得太大进展。

您需要在主机网络上公开两个 docker 容器,当然是在两个不同的端口(比如 8080 和 8081)上。

你的主机需要一个反向代理。 Apache 2.4 是一种可能的选择。 您可以像这样使用虚拟主机:

<VirtualHost *:80>
  ServerName ubuntu.somesite.com

  <Location />
    Order allow,deny
    Allow from all
    Require all granted
  </Location>

  ProxyPass /app1 http://127.0.0.1:8080/
  ProxyPassReverse /app1 http://127.0.0.1:8080/

  ProxyPass /app2/ http://127.0.0.1:8081/
  ProxyPassReverse /app2/ http://127.0.0.1:8081/
</VirtualHost>

请注意,此配置不适用于 apache 2.2 或更早版本。