Você tem várias soluções: balanceamento de carga (keepalived por exemplo) ou proxy reverso (apache ou nginx, por exemplo).
Aqui está uma configuração de amostra para o nginx como um proxy reverso:
upstream backend {
ip_hash;
server 192.168.1.1;
server 192.168.1.2;
}
upstream sorry {
server public_ip;
}
server {
listen 80; ## listen for ipv4; this line is default and implied
location / {
error_page 502 504 = @fallback;
proxy_pass http://backend;
proxy_set_header Host $http_host;
proxy_read_timeout 150;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location @fallback {
proxy_pass http://sory;
}
}