Trong bài viết này, chúng ta sẽ tim hiểu các config revert proxy trong apache 2.

Mục đích của việc sử dụng revert proxy bao gồm:

  • Ngăn truy cập trực tiếp vào các server chính.
  • Cân bằng tải các HTTP request đến server.
  • Cải thiện bảo mật bằng cách giám sát và log lại traffic.
  • Giảm tải SSL tránh cài đặt chứng chỉ trên server chính.
  • Cung cấp static content thay cho các server chính.
  • Rewrite URL trước khi chúng chuyển đến các server chính.
  • Kết hợp các trang web khác nhau vào một URL namespace duy nhất.

Để thực hiện việc cài đặt cho ví dụ này, chúng ta sẽ cần 2 server với 2 địa chỉ khác nhau và có thể gọi đến nhau. Một server cho revert proxy và một server cho web.

Với mục đích của hướng dẫn này, chúng ta sẽ cấu hình revert proxy với địa chỉ IP 10.0.0.10 trên cổng HTTP 80 và server web với địa chỉ IP 10.0.0.20 trên cổng HTTP 8080.

Cài đặt apache server trên server proxy (hệ điều hành ubuntu):

sudo apt install apache2 -y

Việc cấu hình Apache 2 làm revert proxy với cấu hình cơ bản là khá đơn giản. Chúng ta cần cài đặt module mod_proxy với các câu lệnh sau:

a2enmod proxy
a2enmod proxy_http
a2enmod headers

Sau đó, bạn có thể thêm các dòng sau vào cuối tệp:

ProxyPreserveHost On
ProxyPass / http://10.0.0.20:8080/
ProxyPassReverse / https://10.0.0.20:8080/

Bạn sẽ cần khởi động lại Apache để các thay đổi có hiệu lực.

service apache2 restart

Bạn cũng có thể xác nhận các mô-đun được load đúng cách hay chưa.

$ apachectl -M | grep proxy 

proxy_module (shared)
proxy_http_module (shared)

Bước tiếp theo sẽ không thành công vì server web vẫn đang lắng nghe trên cổng HTTP 80 nhưng chúng ta sẽ thay đổi điều đó tiếp theo và xác nhận điều này hoạt động như mong đợi.

curl http://127.0.0.20:8080

Bước quan trọng đầu tiên là đảm bảo rằng các rule tường lửa được mở và được điều chỉnh để cho phép cổng HTTP 8080 đến server web. Nếu bạn đang sử dụng Amazon EC2, hãy tìm security group bảo vệ server web của bạn và đảm bảo rằng cổng HTTP 8080 được mở từ revert proxy của bạn. Bạn có thể cần bao gồm private IP 10.0.0.20 và IP public nếu bạn đã cấp phát.

Trên server web, hãy chỉnh sửa tệp httpd.conf trong /etc/apache2/conf và cập nhật dòng sau:

Listen 8080

Để chứng minh chức năng proxy, chúng ta sẽ sử dụng một cổng riêng biệt với revert proxy nhưng chúng không cần phải khác. Trong trường hợp này, revert proxy sẽ sử dụng cổng HTTP 80 và server web sẽ sử dụng cổng HTTP 8080 .

Bạn sẽ cần khởi động lại Apache để các thay đổi có hiệu lực.

service apache restart

Bạn có thể xác nhận server web đang hoạt động như sau:

$ curl http://localhost:8080
<html><body><h1>It works!</h1></body></html>

Bây giờ hãy quay lại revert proxy và xác nhận rằng nó cũng hoạt động từ đó:

$ curl http://10.0.0.20:8080
<html><body><h1>It works!</h1></body></html>

Và trong thời điểm sự thật để xem liệu bạn có hướng một yêu cầu cổng HTTP 80 tới proxy ngược lại không?

$ curl http://10.0.0.10
<html><body><h1>It works!</h1></body></html>

Nếu bạn gặp bất kỳ sự cố không mong muốn nào, bạn có thể tìm thấy tệp log trên server web và proxy tại đây:

/var/logs/access_log 
/var/logs/error_log

Nếu bạn thích đọc bài viết này và muốn tôi viết về bất kỳ chủ đề nào khác, vui lòng cho tôi biết trong phần bình luận hoặc gửi email trực tiếp cho tôi.

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments