Reverse Proxy

Trong Backend, Reverse Proxy là một thành phần trung gian đóng vai trò nhận request từ client và chuyển tiếp request đó đến server nội bộ phía sau. Sau khi server xử lý và trả kết quả, reverse proxy lại gửi kết quả đó về client. Reverse Proxy thường dùng trong các hệ thống microservices hoặc hệ thống web có kiến trúc phân tầng.


🎯 Mục tiêu chính của Reverse Proxy:

  1. Ẩn backend nội bộ khỏi client

  2. Cân bằng tải (Load Balancing)

  3. Caching

  4. SSL Termination

  5. Routing thông minh

  6. Thêm bảo mật (Firewall, Rate Limiting)


🔁 Reverse Proxy vs Forward Proxy

Tính năng
Forward Proxy (Proxy thông thường)
Reverse Proxy

Client biết Proxy?

Không

Proxy đại diện cho?

Client

Server

Dùng cho?

Ẩn danh, vượt tường lửa

Bảo vệ backend, cân bằng tải


🏗️ Reverse Proxy hoạt động như thế nào?

Giả sử kiến trúc như sau:

Client --> Reverse Proxy (Nginx/API Gateway) --> Backend Services
  • Client gửi request đến https://api.example.com/products

  • Reverse proxy (ví dụ: Nginx hoặc Spring Cloud Gateway) bắt request đó và chuyển tiếp đến dịch vụ nội bộ như http://product-service:8080/api/products

  • Sau khi backend xử lý xong, reverse proxy nhận kết quả và trả về cho client.


🔧 Reverse Proxy dùng gì?

Một số công cụ phổ biến làm reverse proxy:

Công cụ
Mô tả

Nginx

Reverse proxy HTTP phổ biến, hiệu suất cao

HAProxy

Cân bằng tải chuyên nghiệp, hỗ trợ TCP/HTTP

Traefik

Reverse proxy hiện đại, dễ tích hợp với Docker

Spring Cloud Gateway

Dành cho microservices dùng Spring Boot

Envoy

Proxy mạnh, dùng trong hệ thống service mesh


📌 Use-case trong Backend (thực tế):

  1. Trong Microservices:

    • Dùng API Gateway làm reverse proxy.

    • Routing: /api/users/**user-service, /api/orders/**order-service

    • Auth/Rate-limiting được xử lý ngay tại gateway.

  2. Gom nhiều backend thành 1 domain:

    • https://example.com/shop → chuyển tới frontend

    • https://example.com/api/products → chuyển tới backend


✅ Ưu điểm của Reverse Proxy

  • Ẩn danh backend thực (bảo mật)

  • Cân bằng tải backend

  • Dễ triển khai cache

  • Dễ triển khai SSL

  • Hạn chế DDoS


🧠 Từ góc nhìn Senior Backend Developer:

  • Reverse proxy là xương sống khi build hệ thống scalablesecure.

  • Trong Spring Boot, bạn nên để reverse proxy (API Gateway) đảm nhiệm:

    • Routing

    • Token validation

    • CORS

    • Logging & rate limiting

  • Backend services chỉ tập trung vào business logic.


Last updated