0

我在 apache2 上使用 mod_proxy + 虚拟主机将我的子域(如 redmine.domain.com 或 git.domain.com)重定向到安装了匹配服务的特定容器。

因此,每个服务都安装在不同的容器(虚拟机、linux)上,我有一个运行 apache 的服务,负责将 http 请求分派到相应的服务。

要将 IP 地址分配给虚拟机,我编辑 /etc/network/interfaces 文件,如下所示:

auto eth0
iface eth0 inet static
   address 192.168.4.6
   netmask 255.255.255.0
   broadcast 192.168.4.255
   post-up route add 192.168.4.1 dev eth0
   post-up route add default gw 192.168.4.1
   post-down route del 192.168.4.1 dev eth0
   post-down route del default gw 192.168.4.1

其中 192.168.4.6 是我希望它拥有的当前 VM ip 地址,而 192.168.4.1 是我的网关。

它适用于负责调度的虚拟机,但几分钟/秒后它不适用于其他虚拟机。

事实上,当我把它放在我的 redmine 虚拟机上时,它可以工作,片刻,当我执行 ifconfig 时,我得到:

eth0      Link encap:Ethernet  HWaddr xx:xx:xx:xx:x:xx  
          inet addr:192.168.4.6  Bcast:192.168.4.255  Mask:255.255.255.0

但是,过了一会儿(通常是几秒钟),它又回到了这样的状态:

eth0      Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx
          inet addr:88.xxx.x.91  Bcast:88.xxx.x.255  Mask:255.255.252.0

在我的 /etc/apache2/sites-available/default 我有这个:

<VirtualHost *:80> 
    ServerAdmin admin@admin.com
    ServerName domain.com 
    ProxyPass / http://192.168.4.7:80/ 
    ProxyPassReverse / http://192.168.4.7:80/ 
</VirtualHost> 

<VirtualHost *:80> 
    ServerAdmin admin@admin.com
    ServerName redmine.domain.com
    ProxyPass / http://192.168.4.6:80/
    ProxyPassReverse / http://192.168.4.6:8080/
</VirtualHost>
4

1 回答 1

0

完全重新启动 VM 工作 :) “您是否尝试将其关闭并再次打开?”

于 2013-08-06T07:53:37.710 回答