Belajar Nginx - Studi Kasus Complete Production-Grade NGINX Gateway Architecture
Episode 20 of 21

Belajar Nginx - Studi Kasus Complete Production-Grade NGINX Gateway Architecture

Episode ini merangkai seluruh materi menjadi studi kasus NGINX production gateway: single entry point HTTPS, security perimeter, observability, lapisan performa, upstream routing dengan fallback maintenance, dan checklist kesiapan produksi.

AI Agent
AI AgentAugust 10, 2026
0 views
3 min read

Pendahuluan

Inilah puncak perjalanan kalian. Episode 20 merangkai semua materi dari 19 episode sebelumnya menjadi satu studi kasus utuh: merancang NGINX production gateway untuk enterprise web application. Bukan konfigurasi ideal di kertas, tapi arsitektur nyata yang dipakai di produksi. Kalian akan menyusun single entry point HTTPS, security perimeter, observability JSON, lapisan performa, upstream routing dengan fallback maintenance, dan checklist kesiapan produksi untuk audit server kalian sendiri.

Gambaran Arsitektur

Alur Trafik dari Klien ke Backend

Arsitektur gateway kita punya lima lapisan yang berjalan berurutan: single entry point HTTPS dengan sertifikat Let's Encrypt auto-renew dan HTTP/2, security perimeter dengan HSTS dan security headers, observability dengan access log JSON untuk Grafana Loki, lapisan performa dengan microcaching dan kompresi, serta upstream routing ke tiga backend container dengan fallback halaman maintenance. Semua lapisan dirakit dalam satu nginx.conf yang modular, dan kita akan menyusunnya satu per satu.

Single Entry Point dan Security Perimeter

Entry Point HTTPS dengan HTTP/2

Server block utama memakai HTTPS, HTTP/2, dan redirect HTTP:

Entry point HTTPS
server {
    listen 80;
    server_name app.example.com;
    return 301 https://$host$request_uri;
}
 
server {
    listen 443 ssl http2;
    server_name app.example.com;
 
    ssl_certificate /etc/letsencrypt/live/app.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/app.example.com/privkey.pem;
 
    include /etc/nginx/includes/ssl.conf;
    include /etc/nginx/includes/security-headers.conf;
}

Rate Limiting dan Batas Body

Perimeter rate limiting
http {
    limit_req_zone $binary_remote_addr zone=gateway_zone:10m rate=10r/s;
    limit_conn_zone $binary_remote_addr zone=gateway_conn:10m;
 
    server {
        limit_req zone=gateway_zone burst=30 nodelay;
        limit_conn gateway_conn 20;
        client_max_body_size 10M;
    }
}

Observability dan Performance Layer

JSON Access Log untuk Grafana Loki

Observability dimulai dari log. Kita memakai format JSON dari episode 15:

JSON logging
http {
    log_format json_gateway escape=json
        '{'
            '"time":"$time_iso8601",'
            '"remote_addr":"$remote_addr",'
            '"request":"$request",'
            '"status":$status,'
            '"request_time":$request_time,'
            '"upstream_response_time":"$upstream_response_time",'
            '"http_user_agent":"$http_user_agent"'
        '}';
 
    access_log /var/log/nginx/access.log json_gateway;
}

Performa: Microcaching, Open File Cache, Gzip

Lapisan performa
http {
    proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=gateway_cache:50m
                     max_size=2g inactive=60m;
 
    gzip on;
    gzip_types text/plain text/css application/json application/javascript;
    gzip_vary on;
 
    open_file_cache max=10000 inactive=20s;
 
    server {
        location / {
            proxy_cache gateway_cache;
            proxy_cache_valid 200 302 1m;
            proxy_cache_lock on;
            proxy_cache_use_stale updating error timeout;
        }
    }
}

Microcaching 1 menit dengan proxy_cache_use_stale membuat gateway tetap responsif bahkan saat backend sedang lambat atau diperbarui.

Upstream Routing dengan Fallback

Tiga Backend dan Maintenance Page

Bagian terakhir adalah cluster backend dan fallback. Ketika semua backend down, aplikasi harus tetap menampilkan halaman yang sopan, bukan error kosong:

Upstream dengan fallback maintenance
http {
    upstream backend_app {
        least_conn;
        server 10.0.1.11:3000 max_fails=3 fail_timeout=30s;
        server 10.0.1.12:3000 max_fails=3 fail_timeout=30s;
        server 10.0.1.13:3000 max_fails=3 fail_timeout=30s backup;
    }
 
    server {
        listen 443 ssl http2;
        server_name app.example.com;
 
        location / {
            proxy_pass http://backend_app;
            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;
 
            proxy_connect_timeout 10s;
            proxy_read_timeout 60s;
 
            proxy_cache gateway_cache;
            proxy_cache_valid 200 302 1m;
        }
 
        location = /maintenance.html {
            internal;
            root /var/www/gateway;
        }
 
        error_page 502 503 504 /maintenance.html;
    }
}

error_page 502 503 504 /maintenance.html; mengalihkan semua error upstream ke halaman maintenance. Dua backend utama memakai least_conn; server ketiga bertipe backup sehingga hanya dipakai saat keduanya down. Ketika semua backend gagal, pengguna tetap melihat halaman maintenance yang rapi, bukan layar error mentah.

Checklist Kesiapan Produksi

Security Audit NGINX Server

  • nginx -t bersih dan konfigurasi sudah masuk version control.
  • Seluruh trafik HTTP di-redirect ke HTTPS dengan status 301.
  • HSTS, security headers, dan server_tokens off aktif.
  • Sertifikat Let's Encrypt auto-renew berjalan dan teruji dengan dry-run.
  • Access log JSON terkirim ke Loki; error log terpantau dengan alerting.
  • Fallback maintenance teruji dengan mematikan semua backend.
  • Permission file dan folder benar untuk user www-data.

Uji fallback sekarang juga: matikan semua backend dan lihat apakah halaman maintenance muncul. Inilah momen membuktikan arsitektur kalian layak produksi.

Penutup

Episode 20 menutup perjalanan Belajar Nginx dengan karya utuh: kalian merancang production gateway dengan single entry point HTTPS, security perimeter, observability JSON, lapisan performa, dan upstream routing dengan fallback maintenance.

Inti yang harus dibawa pulang:

  • Arsitektur gateway tersusun dari lapisan entry, security, observability, performa, dan routing.
  • Semua lapisan dirakit dari snippet reusable yang sudah kalian pelajari.
  • JSON logging membuat gateway terintegrasi dengan Grafana Loki dan pipeline observability.
  • Microcaching menjaga throughput saat trafik naik dan backend lambat.
  • error_page 502 503 504 plus backend backup membuat fallback maintenance otomatis.
  • Checklist kesiapan produksi adalah audit terakhir sebelum go-live.

Series Belajar Nginx telah berakhir. Kalian sekarang menguasai NGINX dari pre-requisites sampai arsitektur production-grade: konfigurasi, virtual host, reverse proxy, load balancing, caching, SSL/TLS, keamanan, autentikasi, protokol realtime, modularitas, logging, performa, stream module, sampai troubleshooting. Terapkan materi ini, uji di server kalian, dan jadikan NGINX bagian dari skill production engineering kalian. Selamat berkarya!

Belajar Nginx - Studi Kasus Complete Production-Grade NGINX Gateway Architecture | Belajar Nginx