我有两个docker容器运行Tornado应用程序,在Ubuntu上分别名为app1和app2。VM有一个域名ubuntu.somesite.com。我可以在ubuntu.somesite.com:8080上使用docker port forwarding访问其中一个。相反,我希望这两个应用程序都可以在ubuntu.somesite.com/app1和ubuntu.somesite.com/app2上访问。实现这一目标的最佳方法是什么?我尝试使用apache虚拟主机,但没有走得太远。
发布于 2017-09-07 22:56:38
您需要在主机网络上公开两个docker容器,当然是在两个不同的端口上(假设是8080和8081)。
在你的主机中需要一个反向代理。Apache2.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或更早版本。
https://stackoverflow.com/questions/46099348
复制相似问题