ProxyPassを使用して、Apacheが実行されているサーバーに関連付けられていないIPアドレスを介してアクセスできるWebカメラにcamera.example.comにリクエストを送信するようにApacheを設定しました。
[カメラ]-[nat/prt frwrd]-[11.22.33.44]-[インターネット]-[ウェブサーバー]
'example.com'のApacheの仮想ホストディレクティブの関連エントリ:
<VirtualHost *>
ServerName camera.example.com
ProxyRequests Off
ProxyPass / http://11.22.33.44/
ProxyPassReverse / http://11.22.33.44/
</VirtualHost>
チャームのように機能しますが、カメラが常にオンになっているとは限りません。その場合、カメラにアクセスしたときにApacheに「見つかりません」というエラーを表示させる代わりに、別のWebページを表示させたいと思います。
最初のアドレス(カメラ)が利用できない場合に備えて、ある種の「フォールバック」アドレスを設定することは可能でしょうか?
apacheのload バランシング機能 を使用できます。自動フェイルオーバーも組み込まれています。
構成は次のようになります。
ProxyPass / balancer://hotcluster/
<Proxy balancer://hotcluster>
BalancerMember http://addres.of.the.camera timeout=15 retry=300
BalancerMember http://address.of.backup.server status=+H
</Proxy>
バックアップサーバーに+ H-ホットスタンバイのマークを付けるだけです。カメラが[intimeoutsec]に応答する限り、トラフィックはカメラに送信されます。そうでない場合-Apacheはバックアップマシンへのトラフィックの送信を開始し、retry秒ごとにカメラをチェックします。
これがパブリックIPアドレスの場合、特定のDNSプロバイダーがIPアドレスにpingを実行し、バックアップIPアドレスが使用できない場合はフェイルオーバーします。これにはdnsmadeeasy.comを使用します。
ただし、注意すべき点の1つは、チェックが5分ごと程度であるため、フェイルオーバーとフェイルバックが瞬時に行われないことです。