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