Reverse proxy vs Forward proxy

Proxy hay Proxy Server làm nhiệm vụ đứng giữa client và web server ứng dụng. Nó có vai trò bảo vệ client hoặc webserver tùy theo loại của chúng. Có 2 loại proxy là Reverse proxy vs Forward proxy:

1- Forward proxy thường được sử dụng trong các doanh nghiệp. Nó cùng với với tường lửa, router để bảo vệ, kiểm soát người dùng ra ngoài Internet. Proxy này ghi log, cho phép người dùng được truy cập các trang web nào, thời điểm nào… Đảm bảo tính ẩn danh của người dùng trước các web ghi lại thông tin người truy cập.

2- Reverse proxy thì ngược lại, nó tiến hành bảo vệ web server trước các client. Nó tiến hành ghi log, đứng trước bảo vệ các webserver đằng sau, ngăn không cho client gửi yêu cầu tới webserver trực tiếp. Nó cũng đóng vai trò như các bộ điều hướng, kiểm soát các client để phân bổ tới các ứng dụng định sẵn. Hơn nữa Reverse proxy có thể đóng thêm vai trò cân bằng tải (Load Balancer)

Tìm hiểu tiếp phần này thấy có khá nhiều thứ hay ho. Ta mở rộng thêm các khái niệm về Load Balancer, High-Availability đi kèm là HAProxy và Keepalived.

Đối với Apache thì có các module Proxy, module HAProxy, module Keepalived để làm Cân bằng tải.
Chuyên biệt hơn ta có Piranha Load Balancer, với cấu hình trực quan để làm Load Balancer.

Ta cũng có thể sử dụng NGINX làm proxy cho Apache.

Một số link tham khảo thêm Reverse proxy vs Forward proxy:
https://tech.bizflycloud.vn/tong-quan-ve-haproxy-va-load-balancing-20180712085354307.htm
http://congdonglinux.vn/piranha-load-balancer/
https://anninhmang.edu.vn/cau-hinh-high-available-load-balancer-voi-haproxy-va-keepalived/
https://vicloud.vn/community/huong-dan-su-dung-apache-nhu-mot-reverse-proxy-bang-cong-cu-mod-proxy-tren-centos-7-376.html
https://thachpham.com/linux-webserver/nginx-reverse-proxy-cho-apache.html
https://kipalog.com/posts/Web-Server—Tan-man-PHP-Handler-va-Apache

Sự cố về proxy đối với hệ thống

Hệ thống bên mình trao đổi dữ liệu với đối tác thông qua webservice. Ngoài việc sử dụng VPN site to site với đối tác, Virtual IP và tường lửa để bảo mật thông tin. Vì bên mình sử dụng chính Database Oracle để gọi webservice của đối tác nên để tránh rủi ro thì giữa Database và đối tác sẽ sử dụng một con server khác cài Proxy để làm trung gian.

Con database trước khi gọi webservice thì phải tiến hành gọi hàm set proxy tới địa chỉ server proxy kia. Con Proxy có nhiệm vụ làm trung gian gửi thông tin đi và đón nhận từ webservice đối tác trả về rồi đưa ngược trở lại database.

“Câu hỏi: Không rõ nếu mình không dùng database để gọi trực tiếp webservice đối tác nữa mà dùng một server khác (như con proxy) có code xử lý việc lấy thông tin từ webservice để cập nhật vào DB của mình thì liệu có an toàn không?”

Sự cố: Sự cố xảy ra do mình suy nghĩ, đặt vai trò máy tính của mình như là con Database, tiến hành set proxy cho máy tính của mình là địa chỉ IP của con proxy sau đó gọi webservice để kiểm tra. Bởi vì máy tính của mình cũng như database không được trực tiếp truy cập webservice mà phải thông qua con Proxy. Do máy tính của mình có nhiều các kết nối – ứng dụng khác nhau (thư điện tử, skype, trình duyệt…) gây sập con Proxy kia.

Một anh team đội mình nói làm thế không an toàn, không ai làm thế mà không nêu rõ lý do. Còn anh bên mạng thì nói không được làm thế nhưng về nguyên tắc không thể chết Proxy được. Bởi các request ngoài webservice đối tác sẽ không có kết quả phản hồi vì Proxy không trả lời những thứ nó không biết là gì. Mình ậm từ sẽ không làm vậy nữa nhưng cũng không thỏa mãn về cách trả lời như vậy. Mình muốn nghe giải thích nhưng có vẻ mọi người không muốn chia sẻ kiến thức???

Mình cần phải đọc thêm về phần này, thử nghiệm và hiểu rõ nhất có thể.