【问题标题】:Use ProxyPass configuration for Apache in docker在 docker 中为 Apache 使用 ProxyPass 配置
【发布时间】: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


【解决方案1】:

所以,network_mode 是问题所在。

我删除network_mode 并测试下一个:

version: '3'
services:
  apache:
    image: ubuntu
    container_name: Container1
    #network_mode: "bridge"
    tty: true
  web:
    image: ubuntu
    container_name: Container2
    #network_mode: "bridge"
    tty: true

docker-compose up -d后进入Container1,安装ping,可以ping通Container2

root@fe69bd6d62af:/# ping Container2
PING Container2 (172.26.0.3) 56(84) bytes of data.
64 bytes from Container2.bb_default (172.26.0.3): icmp_seq=1 ttl=64 time=0.166 ms
64 bytes from Container2.bb_default (172.26.0.3): icmp_seq=2 ttl=64 time=0.064 ms

您也可以参考official doc了解自定义网桥与默认网桥相比给我们带来了什么,主要区别如下:

用户定义的网桥提供容器之间的自动 DNS 解析。

如果你不指定network_mode,compose 会自动为你设置一个用户定义的桥,所以你可以使用这个魔法。在我的例子中,bb_default 是我们的桥接设置,您可以使用docker network ls 来确认它。另外,可以使用docker network inspect bb_default 来查看这座新桥的详细信息。

【讨论】:

    猜你喜欢
    • 2018-02-05
    • 2020-05-25
    • 2011-12-10
    • 2013-03-13
    • 1970-01-01
    • 2020-12-03
    • 2014-11-17
    • 2010-10-27
    • 2013-11-26
    相关资源
    最近更新 更多