【问题标题】:Run apache in both host machine and docker container on 80 port在 80 端口上的主机和 docker 容器中运行 apache
【发布时间】:2015-11-16 11:59:00
【问题描述】:

我需要使用 docker 进行自动服务器设置之类的设置。现在服务器机器应该支持 docker 或正常设置。所以我需要在 80 端口上的 docker 容器和主机上设置 apache web 服务器。喜欢

Host Machine  : application1.serverhost.com
Docker Machine  : application2.serverdocker.com

但是 Docker 不会使用 80 端口,因为它已经绑定在主机 apache 上。虽然我正在考虑在主机上使用反向代理和 apache 之类的

Proxy Setting -> 172.17.0.2:8080 

在浏览器上连接到代理 application2.serverdocker.com 上的 80 端口。 IP -> 172.17.0.2 是我想从 docker inspect 获取的 docker 容器 IP。

但是,如果有任何其他方法可以在 docker 本身中处理此问题,我可以忽略主机上的反向代理。并从浏览器调用application1.serverhost.com 和application2.serverdocker.com 而不附加端口。

编辑:使用反向代理的一个大问题是,每当我需要在同一台服务器上添加另一个 docker 时,我也需要为该新 IP 添加代理,因为这也会在 8081 等其他端口而不是主机端口上运行 docker apache: 80 和第一个 docker 的端口:8080。换句话说,在大量 docker 实例的情况下,大量的反向代理设置和端口。

【问题讨论】:

    标签: apache docker reverse-proxy portforwarding


    【解决方案1】:

    如果您使用的是reverse proxy, (like an NGiNX),这意味着您的两台 Apache 服务器都必须在不同于 80 的端口上运行。

    只有您的 NGiNX 会在端口 80 上运行(例如直接在主机上),并且会重定向到 localhost_apache1:xxx 和 172.17.0.2_apache2:yyy。

    从用户的角度来看,两个 Apache 都被视为“好像”它们自己在端口 80 上运行。

    【讨论】:

    • 好吧,我不需要 nginx,因为我可以使用代理模块将主机 apache 设置为反向代理。在这种情况下只需要运行docker并连接代理,其他主机域可以在主机apache上正常运行。无论如何,如果可以使用其他方法,问题仍然存在?
    • @kuldeep.kamboj 我猜您确实可以使用一个 apache 将代理反向代理到另一个。但是对于“还有其他方法吗?”这个问题:我的答案仍然有效(明确区分每个 Web 服务器提供的角色)
    • 我会支持 VonC 的回答。反向代理是做到这一点的方法。我在 OSX 上做了与主机相同的事情。主机在 80 端口上运行 apache,也让 apache 在 80 端口上运行的容器(在 docker-machine)中运行。只需要在主机上设置反向代理,将 http:///proxypath 代理到 docker -机器IP。
    猜你喜欢
    • 1970-01-01
    • 2019-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-18
    • 2023-03-26
    • 2019-09-20
    • 2021-08-05
    相关资源
    最近更新 更多