【问题标题】:Apache remap to apache within docker containerApache 重新映射到 docker 容器中的 apache
【发布时间】:2014-05-09 08:09:00
【问题描述】:

我目前有一个运行多个虚拟主机的 apache 服务器。

但是我想在一个虚拟主机上使用另一个 apache 设置。我的想法是在 docker 容器中安装具有不同设置的 apache。但那我该如何设置呢? 如果我在 docker 容器中有一个 apache,它必须监听另一个端口,对吗? docker 外部的 apache 必须以某种方式将流量重定向到 docker 内部的 apache?

目前我的配置如下所示:

<Virtualhost *:80>
    ServerName host1.com
    ...
</Virtualhost>

<Virtualhost *:80>
    ServerName host2.com
    ...
</Virtualhost>

假设我希望在 docker 内部的 apache 中处理 host2.com。 我“猜想”我可以在 docker 之外的 apache 中进行重定向:

<Virtualhost *:80>
    ServerName host2.com
    RedirectMatch ^(.*)$ http://host2.com:81$1
</Virtualhost>

然后在 docker 里面的 apache 里面有这个:

<Virtualhost *:81>
    ServerName host2.com
    ...
</Virtualhost>

但我希望重定向/重写/重新映射是内部的,这样客户端就看不到任何变化。这可能吗?

【问题讨论】:

    标签: apache rewrite virtualhost docker


    【解决方案1】:

    您能否使用一个薄层来代理每个特定容器(您的主机 1 和主机 2)?为此,您可以使用 NginxHipache 或其他一些代理将流量发送到包含在不同 docker 容器中的两个不同站点。

    在此示例中,您将拥有三个容器。一个接受并代理到另外两个容器的流量。为了下面的例子,我编造了一些外部端口。


    Nginx(或其他)反向代理容器:内部端口 80,外部端口 80

    • host1.com -> 49000
    • host2.com -> 49001

    Docker Apache 容器 1:内部端口 80,外部端口 49000 <Virtualhost *:80> ServerName host1.com ... </Virtualhost>

    Docker Apache Container 2:内部端口 80,外部端口 49001 <Virtualhost *:80> ServerName host2.com ... </Virtualhost>

    【讨论】:

    • 非常感谢!听起来是个好建议。我从未使用过 Nginx 或 Hipache,但我会看看它们。
    猜你喜欢
    • 2018-06-22
    • 1970-01-01
    • 1970-01-01
    • 2012-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多