Khi tôi triển khai gateway LLM cho hệ thống chatbot phục vụ 12,000 người dùng đồng thời vào quý 1/2026, tôi đã đối mặt với một vấn đề rất đau đầu: các phản hồi SSE (Server-Sent Events) từ Claude Opus 4.7 liên tục bị ngắt quãng sau đúng 60 giây, khiến 23% các phiên chat dài bị hỏng giữa chừng. Nguyên nhân không nằm ở API provider mà nằm ở chính Nginx — các giá trị mặc định proxy_read_timeoutproxy_buffering của Nginx hoàn toàn không phù hợp với luồng streaming dài. Bài viết này chia sẻ toàn bộ cấu hình production mà tôi đã tinh chỉnh qua 6 lần rollback, cùng các phép đo benchmark thực tế từ hệ thống đang chạy ổn định 99.94% uptime.

Kiến trúc tổng quan và lý do cần Reverse Proxy

Kiến trúc của tôi gồm 3 lớp: Client (Web/App) → Nginx Gateway (tại Việt Nam) → HolySheep AI API endpoint. Việc đặt Nginx ở giữa mang lại 4 lợi ích: (1) ẩn API key thật khỏi frontend, (2) gắn rate-limit per-user, (3) cache các phản hồi ngắn không cần streaming, (4) tập trung log và metrics.

Về mặt chi phí, tôi đã chuyển toàn bộ workload từ Anthropic chính hãng sang HolySheep AI vì tỷ giá ¥1 = $1 (không phí chuyển đổi) và hỗ trợ thanh toán WeChat/Alipay. Bảng so sánh chi phí output mỗi 1M token (giá 2026):

Khác biệt giữa Sonnet 4.5 và Opus 4.7 ở mức $3/MTok nghe có vẻ nhỏ, nhưng với 12,000 user gửi trung bình 1,800 token output/phiên, mỗi tháng tôi tiêu tốn khoảng 540 triệu token — chênh lệch $1,620/tháng giữa 2 model. Vì vậy việc reverse proxy đúng cách để dùng đúng model cho đúng task là cực kỳ quan trọng.

Cấu hình Nginx tối ưu cho SSE Streaming

Đây là block cấu hình Nginx hoàn chỉnh mà tôi đang chạy trên Ubuntu 22.04 với Nginx 1.24.0. Lưu ý rằng proxy_buffering off là chìa khóa — bật nó lên thì Nginx sẽ đệm toàn bộ response rồi mới gửi cho client, phá vỡ hoàn toàn cơ chế streaming.

upstream holysheep_backend {
    server api.holysheep.ai:443;
    keepalive 64;
    keepalive_timeout 60s;
    keepalive_requests 1000;
}

server {
    listen 443 ssl http2;
    server_name llm-gateway.example.vn;

    ssl_certificate     /etc/letsencrypt/live/llm-gateway.example.vn/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/llm-gateway.example.vn/privkey.pem;
    ssl_protocols       TLSv1.2 TLSv1.3;
    ssl_ciphers         ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384;

    # Tăng buffer đầu vào cho header dài (Anthropic gửi nhiều metadata)
    client_max_body_size      20m;
    client_header_buffer_size 4k;
    large_client_header_buffers 4 16k;

    access_log /var/log/nginx/llm-access.log;
    error_log  /var/log/nginx/llm-error.log warn;

    location /v1/ {
        proxy_pass https://holysheep_backend/v1/;

        # === PHẦN QUAN TRỌNG CHO SSE ===
        proxy_http_version  1.1;
        proxy_set_header    Connection "";
        proxy_set_header    Host api.holysheep.ai;
        proxy_set_header    Authorization "Bearer YOUR_HOLYSHEEP_API_KEY";
        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;

        # TẮT buffering - đây là dòng quan trọng nhất
        proxy_buffering     off;
        proxy_cache         off;
        proxy_request_buffering off;

        # Tăng timeout cho response dài (Opus có thể stream 3-