Hạ tầng server Linux phục vụ Nginx reverse proxy

Cấu hình Nginx rate limit trong production: giảm abuse và giữ backend ổn định

Khi website tăng traffic đột biến hoặc bị bot scan liên tục, Nginx rất dễ trở thành điểm nghẽn nếu không có cơ chế kiểm soát request. Chủ đề Nginx rate limit là keyword có intent cao vì tác động trực tiếp tới độ ổn định hệ thống.

Nginx rate limiting là gì?

Đây là kỹ thuật giới hạn số lượng request từ một IP (hoặc key tùy chỉnh) trong một khoảng thời gian. Mục tiêu là giảm abuse, bảo vệ upstream app và giữ trải nghiệm người dùng ổn định.

Cấu hình cơ bản

http {
  limit_req_zone $binary_remote_addr zone=api_limit:10m rate=10r/s;

  server {
    location /api/ {
      limit_req zone=api_limit burst=20 nodelay;
      proxy_pass http://app_backend;
    }
  }
}

Ý nghĩa các tham số quan trọng

  • rate=10r/s: tốc độ request cho mỗi key
  • burst=20: cho phép vượt ngưỡng ngắn hạn
  • nodelay: xử lý ngay burst thay vì delay hàng đợi
  • zone=api_limit:10m: bộ nhớ lưu trạng thái giới hạn

Best practices production

  • Tách policy cho API login và API public
  • Dùng log/metric để tune rate theo thực tế
  • Kết hợp WAF và fail2ban khi cần
  • Whitelist IP nội bộ hoặc monitor probes

Troubleshooting

  • 429 quá nhiều: tăng burst hoặc giảm strictness tại endpoint ít rủi ro
  • CPU vẫn cao: kiểm tra bot pattern, cache layer, upstream bottleneck
  • Người dùng thật bị chặn: cân nhắc key theo token/user thay vì chỉ IP

Kết luận

Nginx rate limit là lớp bảo vệ nhẹ nhưng hiệu quả cao cho production. Triển khai đúng sẽ giúp backend ổn định hơn, giảm abuse và bảo vệ dịch vụ trước các đợt traffic xấu.

1 thought on “Cấu hình Nginx rate limit trong production: giảm abuse và giữ backend ổn định”

Leave a Comment

Your email address will not be published. Required fields are marked *