Reverse proxy (web server)
Reverse proxy là một web server tập trung hóa các dịch vụ nội bộ và cung cấp giao diện thống nhất ra bên ngoài. Request từ client được chuyển tiếp tới một server có thể đáp ứng nó, sau đó reverse proxy trả response của server về cho client.
Các lợi ích bổ sung gồm:
- Tăng cường bảo mật: Ẩn thông tin về các backend server, chặn IP (blacklist), giới hạn số kết nối trên mỗi client
- Tăng khả năng mở rộng và tính linh hoạt: Client chỉ thấy IP của reverse proxy, cho phép bạn scale server hoặc đổi cấu hình của chúng
- SSL termination: Giải mã các request đến và mã hóa response của server để các backend server không phải thực hiện những thao tác có thể tốn kém này
- Không cần cài chứng chỉ X.509 trên từng server
- Nén: Nén response của server
- Caching: Trả về response cho các request đã được cache
- Nội dung tĩnh: Phục vụ trực tiếp nội dung tĩnh
- HTML/CSS/JS
- Ảnh
- Video
- Vân vân
Load balancer vs reverse proxy
- Triển khai load balancer hữu ích khi bạn có nhiều server. Thông thường, load balancer định tuyến traffic tới một nhóm server cùng chức năng.
- Reverse proxy vẫn hữu ích dù chỉ có một web server hoặc application server, và mang lại các lợi ích đã mô tả ở phần trước.
- Các giải pháp như NGINX và HAProxy hỗ trợ được cả layer 7 reverse proxy lẫn load balancing.
Nhược điểm: reverse proxy
- Đưa reverse proxy vào làm tăng độ phức tạp.
- Một reverse proxy đơn lẻ là single point of failure, còn cấu hình nhiều reverse proxy (tức một failover) thì độ phức tạp tăng thêm nữa.
