Reverse Proxy & Load Balancing — DevOps

Apa itu Reverse Proxy? Reverse proxy adalah server yang menerima request dari client dan meneruskannya ke backend server. Client tidak tahu server mana yang…

Apa itu Reverse Proxy?

Reverse proxy adalah server yang menerima request dari client dan meneruskannya ke backend server. Client tidak tahu server mana yang sebenarnya melayani request.

Manfaat Reverse Proxy

Nginx sebagai Reverse Proxy

server {
    listen 80;
    server_name myapp.com;

    location / {
        proxy_pass http://localhost:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    # WebSocket support
    location /ws {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

Load Balancing

# Definisi upstream (grup server)
upstream backend {
    # Round-robin (default)
    server 10.0.0.1:3000;
    server 10.0.0.2:3000;
    server 10.0.0.3:3000;
}

# Algoritma lain:
upstream backend_weighted {
    server 10.0.0.1:3000 weight=3;    # 3x lebih banyak traffic
    server 10.0.0.2:3000 weight=1;
}

upstream backend_iphash {
    ip_hash;    # Client selalu ke server yang sama
    server 10.0.0.1:3000;
    server 10.0.0.2:3000;
}

server {
    listen 80;
    location / {
        proxy_pass http://backend;
    }
}

Yang akan kamu pelajari