NateCue NateCue.
Tech & Tools

Reverse Proxy: Khái niệm, Lợi ích và Ứng dụng

Server đứng trước backend xử lý load balancing, bảo mật SSL, caching - Nginx, Traefik, Caddy đều dùng kiến trúc này

Reverse Proxy: Khái niệm, Lợi ích và Ứng dụng

1. Reverse Proxy là gì?

Reverse Proxy (Proxy ngược) là một loại server đứng trước các web server (backend) để nhận các yêu cầu (request) từ client (người dùng) và chuyển tiếp chúng đến server nội bộ phù hợp.

Khác với Forward Proxy (Proxy xuôi - đại diện cho người dùng để truy cập internet), Reverse Proxy đại diện cho các server để giao tiếp với người dùng.


2. Reverse Proxy vs Forward Proxy

Đặc điểmForward ProxyReverse Proxy
Đại diện choClient (Người dùng)Server (Máy chủ)
Vị tríĐứng trước ClientĐứng trước Backend Server
Mục đích chínhẨn IP người dùng, vượt rào cản, kiểm soát truy cập internet.Cân bằng tải, bảo mật server, tăng tốc độ truy cập.
Ví dụVPN, Proxy công ty để theo dõi nhân viên.Nginx đứng trước app Node.js/Python.

3. Các tính năng & Lợi ích chính

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

Nếu website có hàng triệu truy cập, một server không thể gánh nổi. Reverse Proxy sẽ điều phối traffic đến một cụm server (server pool) để tránh quá tải cho bất kỳ máy chủ nào.

B. Bảo mật (Security & Anonymity)

  • Ẩn danh Server: Client không bao giờ biết địa chỉ IP thực của backend server, giúp ngăn chặn các cuộc tấn công trực tiếp.
  • Chặn DDoS: Reverse Proxy có thể lọc traffic xấu trước khi nó chạm đến server chính.

C. Giải mã SSL (SSL Termination)

Việc mã hóa/giải mã HTTPS tốn rất nhiều tài nguyên. Reverse Proxy đảm nhận việc này (SSL Offloading), giúp backend server rảnh tay để xử lý logic ứng dụng.

D. Caching (Bộ nhớ đệm)

Reverse Proxy có thể lưu trữ các nội dung tĩnh (ảnh, video, HTML). Khi người dùng khác yêu cầu cùng nội dung đó, nó sẽ trả về ngay lập tức mà không cần gọi đến backend server.


4. Các phần mềm Reverse Proxy phổ biến

  1. NGINX: Phổ biến nhất thế giới, cực kỳ mạnh mẽ và nhẹ.
  2. HAProxy: Chuyên trị Load Balancing cho các hệ thống cực lớn.
  3. Traefik: Thiết kế riêng cho Docker và Kubernetes (Cloud-native), tự động cấu hình.
  4. Caddy: Đang nổi lên nhờ khả năng tự động cấp chứng chỉ SSL (HTTPS) cực kỳ dễ dàng.
  5. Apache: Lâu đời, linh hoạt nhưng thường nặng hơn Nginx.

5. Ví dụ thực tế

Bạn có một app chạy ở localhost:3000. Thay vì để người dùng truy cập trực tiếp qua cổng 3000, bạn dùng Nginx làm Reverse Proxy để:

  • Người dùng truy cập qua domain.com (cổng 80/443).
  • Nginx nhận request và đẩy về localhost:3000.
  • Nginx quản lý luôn chứng chỉ SSL cho domain.com.

Liên kết