High-Availability Setup with Failover

2 min read

Authors
banner

High Availability Setup

Complete HA Config

upstream backend {
    least_conn;

    server backend1:8080 weight=2 max_fails=3 fail_timeout=30s;
    server backend2:8080 weight=2 max_fails=3 fail_timeout=30s;
    server backend3:8080 weight=1 max_fails=3 fail_timeout=30s;

    server backup1:8080 backup max_fails=2 fail_timeout=10s;
    server backup2:8080 backup max_fails=2 fail_timeout=10s;
}

server {
    listen 443 ssl http2;
    server_name example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

    location / {
        proxy_pass http://backend;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_connect_timeout 5s;
        proxy_read_timeout 10s;
    }
}

server {
    listen 80;
    return 301 https://$host$request_uri;
}

Always available!

© 2025 Vijay Rajendran