Reverse Proxy là gì
Reverse Proxy là một server trung gian đứng giữa client và backend. Khi người dùng gửi request, reverse proxy sẽ tiếp nhận, xử lý một phần và gửi tiếp vào backend. Backend chỉ giao tiếp với reverse proxy, không giao tiếp trực tiếp với internet.
Cách reverse proxy hoạt động
Khi có request đến, reverse proxy thực hiện các bước:
- Nhận request từ trình duyệt.
- Kiểm tra route, rule định tuyến hoặc cache.
- Chuyển request đến backend phù hợp.
- Nhận phản hồi từ backend và trả lại cho client.
Backend không hề biết client là ai. Toàn bộ traffic đều đi qua reverse proxy.
Lợi ích của reverse proxy
- Bảo mật backend, ẩn toàn bộ IP và port nội bộ.
- Terminating SSL/TLS (reverse proxy xử lý HTTPS, backend chỉ chạy HTTP).
- Caching response để giảm tải backend.
- Load balancing giữa nhiều backend.
- Gộp nhiều dịch vụ backend thành một domain duy nhất.
Reverse Proxy khác gì Forward Proxy
| Tiêu chí | Forward Proxy | Reverse Proxy |
|---|---|---|
| Đứng phía nào | Phía client | Phía server |
| Mục đích | Ẩn thông tin client | Ẩn backend, tối ưu hệ thống |
| Ứng dụng phổ biến | VPN, proxy internet | Web server, hệ thống backend |
Tại sao backend cần reverse proxy
Backend như Node.js, Python hoặc PHP-FPM không được thiết kế để:
- Quản lý nhiều kết nối đồng thời
- Chạy trên port 80/443 công khai
- Tối ưu bảo mật layer HTTP/HTTPS
Reverse proxy xử lý lớp giao tiếp HTTP, backend tập trung vào business logic.
SSL/TLS Offloading
Reverse proxy thường đảm nhiệm việc xử lý HTTPS thay backend. Backend chỉ cần chạy HTTP. Điều này giảm tải cho backend và đơn giản hóa config.
Load Balancing
Khi hệ thống lớn cần nhiều backend, reverse proxy tự động chia request theo các thuật toán như round robin, least connection. Điều này giúp tăng khả năng chịu tải và giảm bottleneck.
Cache response
Reverse proxy có thể cache file tĩnh hoặc thậm chí toàn bộ response. Ví dụ: Nginx hoặc LiteSpeed có thể cache page HTML mà không cần backend chạy lại logic.
Các reverse proxy phổ biến
- Nginx: phổ biến nhất, nhẹ, mạnh, phù hợp mọi loại backend.
- Apache + mod_proxy: linh hoạt, dùng trên hệ thống cũ.
- HAProxy: chuyên về load balancing, hiệu năng cao.
- Traefik: sinh ra cho Docker, tự cập nhật route từ container.
Kết luận
Reverse proxy không chỉ để điều phối request, mà là lớp bảo vệ và tối ưu toàn hệ thống backend. Nó giúp giảm tải, tăng hiệu năng, tăng bảo mật và dễ dàng mở rộng khi traffic tăng. Trong một hệ thống web chuyên nghiệp, reverse proxy gần như là thành phần bắt buộc.
Bình luận