Panduan Optimasi Nginx untuk High-Traffic Server

Teknik optimasi Nginx untuk menangani ribuan concurrent connection tanpa menghabiskan resource server.

Share

Nginx adalah web server dan reverse proxy paling populer untuk server produksi. Dengan konfigurasi yang tepat, satu server Nginx bisa menangani 10.000+ concurrent connections tanpa masalah.

Worker Processes dan Connections

Aturan standar: set worker_processes ke jumlah CPU core. worker_connections 1024 cukup untuk kebanyakan kasus, tapi bisa ditingkatkan hingga 4096 untuk high-traffic. Jangan lupa meningkatkan system file descriptor limit (ulimit -n).

Caching Static Assets

Aktifkan cache untuk file statis: images, CSS, JS. Gunakan header Cache-Control dan ETag. Untuk performa maksimal, pertimbangkan nginx micro-caching dengan proxy_cache — cache halaman HTML selama 1-5 detik untuk mengurangi beban backend.

Gzip dan Brotli Compression

Aktifkan Gzip untuk teks/HTML/CSS/JS. Ukuran file bisa turun 70-80%. Untuk performa lebih baik, gunakan Brotli compression yang 20-25% lebih efisien dari Gzip.

Connection Pooling dan Keep-Alive

Nginx connection pooling mengurangi overhead pembuatan koneksi baru. Set keepalive_requests ke 100-1000 dan keepalive_timeout ke 65 detik. Untuk upstream backend, gunakan upstream keepalive connection.

Rate Limiting dan Security

Gunakan limit_req dan limit_conn untuk mencegah abuse. Tambahkan header security: X-Frame-Options, X-Content-Type-Options, HSTS. Gunakan fail2ban atau nginx deny rules untuk memblokir IP mencurigakan.