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

时间:2017-09-07 14:48:21

标签: apache ubuntu docker tornado

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

1 个答案:

答案 0 :(得分:6)

您需要在主机网络上公开两个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或更早版本。