Fall-back location for Apache's ProxyPass directive?
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?
Solution 1:
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.