如何使用 apache 重定向到 docker 容器
How to use apache to redirect to docker container
我在 Ubuntu VM 上有两个 docker 容器 运行 Tornado 应用程序,分别名为 app1
和 app2
。 VM 有一个域名 ubuntu.somesite.com
。我可以通过 ubuntu.somesite.com:8080
的 docker 端口转发访问其中之一。相反,我希望这两个应用程序都可以在 ubuntu.somesite.com/app1
和 ubuntu.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 或更早版本。
我在 Ubuntu VM 上有两个 docker 容器 运行 Tornado 应用程序,分别名为 app1
和 app2
。 VM 有一个域名 ubuntu.somesite.com
。我可以通过 ubuntu.somesite.com:8080
的 docker 端口转发访问其中之一。相反,我希望这两个应用程序都可以在 ubuntu.somesite.com/app1
和 ubuntu.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 或更早版本。