我目前正在运行一个运行多个虚拟主机的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。 我猜测&#34;我可以在docker之外的apache中进行重定向:
<Virtualhost *:80>
ServerName host2.com
RedirectMatch ^(.*)$ http://host2.com:81$1
</Virtualhost>
然后把这个放在docker里面的apache里面:
<Virtualhost *:81>
ServerName host2.com
...
</Virtualhost>
但我希望重定向/重写/重新映射是内部的,以便客户端看不到任何更改。这可能吗?
答案 0 :(得分:3)
您是否可以使用薄层代理每个特定容器(您的host1和host2)?为此,您可以使用Nginx,Hipache或其他代理将流量发送到不同docker容器中包含的两个不同站点。
在此示例中,您有三个容器。一个接受并代理其他两个容器的流量。我为了下面的例子而组成了一些外部端口。
Nginx(或其他)反向代理容器:内部端口80,外部端口80
Docker Apache Container 1:内部端口80,外部端口49000
<Virtualhost *:80>
ServerName host1.com
...
</Virtualhost>
Docker Apache Container 2:内部端口80,外部端口49001
<Virtualhost *:80>
ServerName host2.com
...
</Virtualhost>