0

apache2 で mod_proxy + 仮想ホストを使用して、redmine.domain.com や git.domain.com などのサブドメインを、一致するサービスがインストールされている特定のコンテナーにリダイレクトしています。

したがって、各サービスは異なるコンテナー (仮想マシン、Linux) にインストールされ、対応するサービスに http 要求をディスパッチする責任を負う apache を実行するサービスがあります。

仮想マシンに 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 はゲートウェイです。

ディスパッチを担当する VM では機能しますが、数分/秒後に他の VM では機能しません。

実際、これを 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>
4

1 に答える 1

0

VM を完全に再起動すると、うまくいきました :) 「オフにしてからもう一度オンにしようとしましたか?」

于 2013-08-06T07:53:37.710 に答える