nginx

Cara Membatasi Request di Nginx untuk Mencegah DDoS

Cara Membatasi Request di Nginx untuk Mencegah DDoS. Tidak semua traffic ke website Anda berasal dari manusia. Banyak bot, crawler, bahkan serangan DDoS ringan yang bisa membanjiri server dengan request berlebihan.

Akibatnya?

  • Website jadi lambat
  • Server overload
  • Bahkan bisa down total

Solusinya: Rate Limiting di Nginx.


🧠 Apa Itu Rate Limiting di Nginx?

Rate limiting adalah teknik untuk membatasi jumlah request dari satu IP dalam periode waktu tertentu.

Tujuannya:

  • Mencegah spam request
  • Mengurangi beban server
  • Melindungi dari serangan bot dan DDoS ringan

⚙️ Cara Setting Rate Limiting di Nginx

🔧 1. Tambahkan Konfigurasi Limit Zone

Buka file konfigurasi utama:

sudo nano /etc/nginx/nginx.conf

Tambahkan di dalam blok http { ... }:

limit_req_zone $binary_remote_addr zone=limit:10m rate=10r/s;

🔍 Penjelasan

  • $binary_remote_addr → IP user
  • zone=limit:10m → ruang memori untuk tracking IP
  • rate=10r/s → maksimal 10 request per detik

⚡ 2. Terapkan di Server

Buka file konfigurasi website:

sudo nano /etc/nginx/sites-available/default

Tambahkan di dalam blok server { ... }:

limit_req zone=limit burst=20 nodelay;

🔍 Penjelasan

  • burst=20 → toleransi lonjakan request
  • nodelay → request diproses langsung tanpa delay

🔄 Restart Nginx

sudo nginx -t
sudo systemctl restart nginx

🧪 Cara Test Rate Limiting

Gunakan tools seperti:

  • ApacheBench (ab)
  • wrk
  • curl loop

Jika limit tercapai, server akan memberikan:

503 Service Temporarily Unavailable

⚠️ Tips Penting

nginx
nginx
  • Jangan terlalu ketat agar user asli tidak terganggu
  • Sesuaikan dengan trafik website Anda
  • Gunakan limit berbeda untuk endpoint tertentu

🔥 Bonus: Batasi Request Login (Anti Brute Force)

Tambahkan khusus untuk login:

location /login {
limit_req zone=limit burst=5 nodelay;
}

👉 Sangat efektif untuk mencegah brute force attack.


🛡️ Kombinasi dengan Security Lain

Untuk hasil maksimal, kombinasikan dengan:

  • Firewall (UFW)
  • Fail2Ban
  • CDN seperti Cloudflare

🎯 Manfaat yang Akan Anda Rasakan

  • Server lebih stabil
  • Terhindar dari spam bot
  • Risiko DDoS ringan berkurang
  • Performa tetap terjaga

🎯 Kesimpulan

Rate limiting di Nginx adalah langkah penting untuk menjaga kestabilan server. Dengan konfigurasi sederhana, Anda bisa melindungi server dari request berlebihan tanpa perlu tools mahal.

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.