【发布时间】:2019-06-20 16:53:15
【问题描述】:
如何在链接到不同容器的 Apache 配置中使用 ProxyPass? 硬编码 IP 地址有效,但有更通用的方法吗?
Container1:apache 监听端口 443 代理将其传递给 Container2 端口 3000
Container2:运行任何侦听端口 3000 的 Flask/Dancer 应用
#docker-compose.yml
version: '3'
services:
apache:
...
ports:
- "443:443"
container_name: Container1
network_mode: "bridge"
depends_on:
- web
web:
...
container_name: Container2
network_mode: "bridge"
-
#apache config
<VirtualHost *:443>
...
ProxyPreserveHost on
# Works but with ip
#ProxyPass / http://ip-of-container2:3000/
#ProxyPassReverse / http://ip-of-container2:3000/
ProxyPass / http://Container2:3000/
ProxyPassReverse / http://Container2:3000/
</VirtualHost>
【问题讨论】:
-
ping Container2在 Container1 中是否正常?删除network_mode: "bridge"怎么样? -
@atline 不,从 Container1 ping Dontainer2 不起作用,但 ping ip-of-Container2 有效。我只是想重用默认网桥。如果我删除它会有什么影响吗?还有两个容器的“桥梁”,发布问题时出现拼写错误。
标签: apache docker docker-compose mod-proxy