Например, через модуль
upstream:
upstream intraserver {
server internal-ip:port max_fails=2 fail_timeout=10;
server 127.0.0.2:8880 backup;
}
server {
listen 127.0.0.2:8880;
return 502;
}
server {
...
proxy_pass http://intraserver;
...
}
max_fails - кол-во ошибок соединения или в ответах (определяется перед proxy_pass
функцией) за период
fail_timeout, начиная с которого апстрим считается упавшим;
backup - параметр, указывающий, что туда надо переводить, если все остальные апстримы лежат, в конфиге он отдает на всё 502.