web-dev-qa-db-ja.com

ApacheのProxyPassディレクティブのフォールバックロケーション?

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ページを表示させたいと思います。

最初のアドレス(カメラ)が利用できない場合に備えて、ある種の「フォールバック」アドレスを設定することは可能でしょうか?

4
klokop

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秒ごとにカメラをチェックします。

12
pQd

これがパブリックIPアドレスの場合、特定のDNSプロバイダーがIPアドレスにpingを実行し、バックアップIPアドレスが使用できない場合はフェイルオーバーします。これにはdnsmadeeasy.comを使用します。

ただし、注意すべき点の1つは、チェックが5分ごと程度であるため、フェイルオーバーとフェイルバックが瞬時に行われないことです。

0
Brent