Nginx Reverse Proxy: Cấu Hình Hiệu Năng Cao, Tối Ưu SSL Và Chống Tải Ảo
Nginx là phần mềm Reverse Proxy phổ biến nhất hành tinh, phục vụ hàng tỷ lượt truy cập mỗi giây. Tuy nhiên, hơn 80% file cấu hình Nginx trong thực tế đang dùng thiết lập mặc định...
Nginx Reverse Proxy: Cấu Hình Hiệu Năng Cao, Tối Ưu SSL Và Chống Tải Ảo
Nginx là phần mềm Reverse Proxy phổ biến nhất hành tinh, phục vụ hàng tỷ lượt truy cập mỗi giây. Tuy nhiên, hơn 80% file cấu hình Nginx trong thực tế đang dùng thiết lập mặc định sơ sài, khiến Nginx trở thành nút thắt cổ chai làm chậm toàn bộ hệ thống phía sau.
1. Tối ưu kết nối Upstream Keepalive (Giảm 50% độ trễ)
Mặc định, mỗi khi chuyển một request từ client vào Backend (Node.js/Go/PHP), Nginx sẽ mở một kết nối TCP mới và đóng lại ngay sau đó. Việc liên tục bắt tay 3 bước (TCP 3-way handshake) gây lãng phí CPU và cạn kiệt port tạm thời!
Cách cấu hình Upstream Keepalive chuẩn:
upstream backend_cluster {
server 127.0.0.1:8080 max_fails=3 fail_timeout=10s;
server 127.0.0.1:8081 max_fails=3 fail_timeout=10s;
# Duy trì sẵn 64 kết nối TCP mở liên tục tới backend
keepalive 64;
}
server {
listen 443 ssl http2;
server_name api.vibedevops.net;
location / {
proxy_pass http://backend_cluster;
# Bắt buộc phải dùng HTTP/1.1 và xoá Connection header để giữ keepalive
proxy_http_version 1.1;
proxy_set_header Connection "";
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;
}
}
2. Cấu hình bảo mật SSL/TLS Đạt Điểm A+ SSL Labs
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers off;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384;
# Bật SSL Session Cache để tăng tốc handshake cho khách quen
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1d;
ssl_session_tickets off;
# Bật HSTS (Buộc trình duyệt luôn dùng HTTPS trong 1 năm)
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
3. Giới hạn tần suất request (Rate Limiting) Chống DDoS & Crawl
# Định nghĩa vùng nhớ 10MB theo IP, tối đa 10 request/giây
limit_req_zone $binary_remote_addr zone=api_limit:10m rate=10r/s;
server {
location /api/ {
# Cho phép burst tối đa 20 request vượt ngưỡng mà không trả về 503 ngay
limit_req zone=api_limit burst=20 nodelay;
proxy_pass http://backend_cluster;
}
}
💡 Mẹo lưu trữ & sử dụng trong đội ngũ
Bạn có thể tải bản PDF vector về lưu trữ trong kho tài liệu nội bộ của team (Notion, Confluence) hoặc in khổ A4 dán tại bàn làm việc để tra cứu nhanh khi gặp sự cố lúc nửa đêm.
Video Bóc Tách: Phân Biệt HTTP 502 Bad Gateway vs 504 Gateway Timeout
Xem video mô phỏng động trực quan đi kèm với cheatsheet này để hiểu sâu sắc cơ chế hoạt động chỉ trong 60 giây.

