Reverse Proxy

Reverse Proxy là một thằng proxy đứng ở “đầu cổng”, chắn giữa clientserver 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:

  1. 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

  2. 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,...

  3. Caching

    • Cache response cho các request thường xuyên

    • Giảm áp lực backend

  4. TLS Termination

    • Chỉ Reverse Proxy xử lý HTTPS

    • Backend phía sau chạy HTTP nội bộ cho nhẹ

  5. 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ế:

Reverse Proxy
Ưu điểm
Dùng khi

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