Khởi tạo VPS trong 60 giây · Hoàn tiền trong 7 ngày · Hỗ trợ kỹ thuật 24/7
Bitech Bitech
Hướng dẫn

Hướng dẫn cấu hình Apache làm Reverse Proxy với extension mod_proxy

Tìm hiểu cách thiết lập Apache HTTP Server làm Reverse Proxy bằng mod_proxy để điều hướng, cân bằng tải và bảo mật lưu lượng truy cập.

Giới thiệu về Apache Reverse Proxy và mod_proxy

Apache HTTP Server không chỉ là một web server mạnh mẽ mà còn có khả năng đóng vai trò làm máy chủ proxy ngược (Reverse Proxy). Nhờ tiện ích mở rộng mod_proxy cùng các module liên quan, Apache có thể tiếp nhận các yêu cầu truy cập từ client, chuyển tiếp chúng đến các máy chủ ứng dụng phía sau (backend servers) và trả kết quả về cho người dùng. Mô hình này giúp tăng cường tính bảo mật, tối ưu hóa hiệu năng và đơn giản hóa việc quản lý lưu lượng.

Bước 1: Kích hoạt các Module Apache cần thiết

Để sử dụng tính năng Reverse Proxy, bạn cần kích hoạt module mod_proxy cùng các module giao thức tương ứng (ví dụ: HTTP).

Trên các hệ điều hành dựa trên Debian/Ubuntu, bạn chạy các lệnh sau:

sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod proxy_balancer
sudo a2enmod lbmethod_byrequests

Sau khi bật các module, khởi động lại dịch vụ Apache để áp dụng thay đổi:

sudo systemctl restart apache2

Bước 2: Cấu hình Virtual Host làm Reverse Proxy

Tiếp theo, tạo hoặc chỉnh sửa tệp cấu hình Virtual Host của Apache (ví dụ: /etc/apache2/sites-available/reverse-proxy.conf).

Thêm đoạn cấu hình cơ bản sau:

<VirtualHost *:80>
    ServerName yourdomain.com

    ProxyRequests Off
    ProxyPreserveHost On

    ProxyPass / http://127.0.0.1:8080/
    ProxyPassReverse / http://127.0.0.1:8080/

    ErrorLog ${APACHE_LOG_DIR}/proxy_error.log
    CustomLog ${APACHE_LOG_DIR}/proxy_access.log combined
</VirtualHost>

Giải thích các directive quan trọng:

  • ProxyRequests Off: Vô hiệu hóa Forward Proxy để đảm bảo an toàn cho máy chủ, tránh bị lợi dụng làm Open Proxy.
  • ProxyPreserveHost On: Chuyển tiếp HTTP header Host gốc từ client đến máy chủ backend.
  • ProxyPass / http://127.0.0.1:8080/: Chuyển tiếp toàn bộ yêu cầu từ đường dẫn gốc (/) đến ứng dụng đang chạy ở cổng 8080.
  • ProxyPassReverse: Điều chỉnh các header HTTP do máy chủ backend trả về để đảm bảo trình duyệt người dùng không bị chuyển hướng sai tên miền.

Bước 3: Cấu hình Cân bằng tải (Load Balancing) - Tùy chọn

Nếu hệ thống của bạn có nhiều máy chủ backend, bạn có thể thiết lập cân bằng tải với mod_proxy_balancer:

<VirtualHost *:80>
    ServerName yourdomain.com

    <Proxy balancer://mycluster>
        BalancerMember http://10.0.0.1:8080
        BalancerMember http://10.0.0.2:8080
    </Proxy>

    ProxyPass / balancer://mycluster/
    ProxyPassReverse / balancer://mycluster/
</VirtualHost>

Bước 4: Kiểm tra và hoàn tất cấu hình

Sau khi chỉnh sửa xong tệp cấu hình, thực hiện các bước sau:

  1. Kích hoạt Virtual Host mới:
    sudo a2ensite reverse-proxy.conf
    
  2. Kiểm tra cú pháp cấu hình Apache để đảm bảo không có lỗi:
    sudo apachectl configtest
    
  3. Nếu màn hình hiển thị Syntax OK, tải lại Apache để hoàn tất:
    sudo systemctl reload apache2
    

Bằng cách triển khai Apache làm Reverse Proxy với mod_proxy, bạn đã xây dựng thành công một lớp đệm bảo vệ cho các ứng dụng backend, đồng thời dễ dàng mở rộng hạ tầng mạng khi cần thiết.


Ngày phát hành: 20/05/2026
Nguồn: www.digitalocean.com