Reverse Proxy
Reverse Proxy là một thằng proxy đứng ở “đầu cổng”, chắn giữa client và server backend. Nhưng nó đảo chiều hướng proxy so với “forward proxy”.
Nói dễ hiểu kiểu Senior Backend:
Forward Proxy: Client → Proxy → Server (proxy đại diện cho client)
Reverse Proxy: Client → Reverse Proxy → Server (proxy đại diện cho server)
Reverse Proxy đứng trước backend, nhận request từ client, rồi quyết định chuyển tiếp request đến service phía sau.
Tại sao cần Reverse Proxy?
Ở môi trường production backend nhiều service, reverse proxy là cổng vào duy nhất. Nó giúp:
Load Balancing
Phân phối request vào nhiều instance backend
Tránh thằng nào bị “đi bụi” vì quá tải
Security
Ẩn toàn bộ hệ thống phía sau (client không biết server thật là gì, port nào)
Có thể chặn IP, giới hạn rate, kiểm tra header,...
Caching
Cache response cho các request thường xuyên
Giảm áp lực backend
TLS Termination
Chỉ Reverse Proxy xử lý HTTPS
Backend phía sau chạy HTTP nội bộ cho nhẹ
Routing / API Gateway
Dựa theo path/domain mà điều phối về đúng microservice
Ví dụ:
/auth → auth-service /product → product-service /chat → chat-service
Các Reverse Proxy phổ biến trong thực tế:
Nginx
Nhẹ, mạnh, cấu hình linh hoạt
Web + API truyền thống
Envoy
Dynamic config, gRPC mạnh
Microservices, Service Mesh
Traefik
Auto-discovery service
Docker/K8s dynamic routing
Kong / API Gateway
Plugin auth, rate-limit, monitoring
API platform quy mô lớn
HAProxy
Performance cực cao
Load balancing nặng, traffic lớn
Ví dụ “flow” đơn giản:
Client chỉ thấy Reverse Proxy. Mọi backend phía sau ẩn hoàn toàn.
Một câu súc tích:
Reverse Proxy là lớp “cổng bảo vệ” đứng trước Backend, xử lý routing, bảo mật, load balancing và che giấu server thật khỏi client.
Last updated