5

I've set up Apache to send requests to camera.example.com to an a webcam accessible via an IP address not associated with the server Apache's running on, using ProxyPass:

[camera] -- [nat / prt frwrd] -- [11.22.33.44]-- [internets] -- [webserver]

Relevant entry in the Apache's virtual host directive for the 'example.com':

<VirtualHost *>
  ServerName camera.example.com
  ProxyRequests Off
  ProxyPass / http://11.22.33.44/
  ProxyPassReverse / http://11.22.33.44/
</VirtualHost>

Works like a charm, however, the camera is not always turned on. In that case, instead of having Apache serve a 'not found' error upon visiting my camera , I'd like it to serve an alternative web page.

Would it be possible to set some sort of 'fall-back' address in case the first one (the camera's) is not available?

pQd
  • 29,561
  • 5
  • 64
  • 106
klokop
  • 163
  • 1
  • 4

2 Answers2

14

you can use load balancing capability of apache, it has automatic failover built-in as well.

your config would look as follows:

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> 

you just mark backup-server with +H - hot standby. as long as camera answers [ in timeout sec ] - traffic is sent to it; if it does not - apache starts sending traffic to the backup machine, and will check camera every retry seconds.

pQd
  • 29,561
  • 5
  • 64
  • 106
0

If this is a public IP address, certain DNS providers will ping your IP address, and failover to a backup IP address if it is not available. We use dnsmadeeasy.com for this.

One thing to be aware of however, is that it may only check every 5 minutes or so, so failover and failback are not instantaneous.

Brent
  • 22,219
  • 19
  • 68
  • 102