我在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 VM,它有效,片刻,当我做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>
答案 0 :(得分:0)
完全重启VM工作:) &#34;你有没有试过把它关掉再打开?&#34;