Để thiết lập một reverse proxy trên VPS sử dụng aaPanel nhằm che giấu IP của VPS chứa source code, bạn có thể làm theo các bước chi tiết dưới đây. Cấu hình này sẽ sử dụng VPS proxy làm trung gian để chuyển tiếp yêu cầu từ Cloudflare đến VPS chính, giúp bảo vệ địa chỉ IP của VPS chứa source code.
Tổng quan quy trình
- VPS Proxy: Cài đặt reverse proxy (ví dụ: Nginx) trên VPS này, nhận yêu cầu từ Cloudflare và chuyển tiếp đến VPS chính.
- VPS Chính (chứa source code): Chứa website hoặc ứng dụng, chỉ chấp nhận kết nối từ VPS Proxy.
- Cloudflare: Trỏ domain đến IP của VPS Proxy, bật chế độ proxy để ẩn IP thực.
- aaPanel: Sử dụng aaPanel trên cả hai VPS để quản lý dễ dàng.
Các bước thực hiện
Bước 1: Chuẩn bị VPS và aaPanel
- VPS Proxy: Đảm bảo bạn đã cài aaPanel trên VPS Proxy. Nếu chưa, làm theo hướng dẫn cài đặt aaPanel từ trang chính thức hoặc tham khảo.
- Yêu cầu tối thiểu: 1C 1R, CentOS 7.1+, Ubuntu 22+
- Đảm bảo VPS Proxy có IP công khai (public IP).
- VPS Chính: Cài aaPanel và thiết lập website/source code của bạn.
- Cloudflare: Trỏ domain của bạn đến IP của VPS Proxy và bật chế độ Proxy (biểu tượng đám mây màu cam).
Bước 2: Cài đặt Nginx Reverse Proxy trên VPS Proxy với aaPanel
- Đăng nhập vào aaPanel trên VPS Proxy:
- Truy cập giao diện aaPanel (thường là http://IP_VPS:8888).
- Vào App Store > Tìm Nginx > Cài đặt phiên bản mới nhất (khuyến nghị chọn "Compiled" để tối ưu hiệu năng).
- Thêm website trong aaPanel:
- Vào Website > Add Site.
- Nhập domain của bạn (ví dụ: example.com).
- Không cần tạo cơ sở dữ liệu hoặc FTP nếu chỉ dùng làm proxy.
- Sau khi thêm, ghi lại thư mục gốc của website (thường là /www/wwwroot/example.com).
- Thêm SSL (Quan trong)
- Cấu hình Reverse Proxy:
- Trong aaPanel, vào Website > Chọn domain vừa tạo > Settings > Reverse Proxy.
- Bật Enable Reverse Proxy.
- Nhập thông tin:
- Target URL: IP của VPS chính (ví dụ: http://192.168.x.x hoặc http://IP_VPS_CHINH).
- Domain: Nếu vps có nhiều domain thì nhập domain của bạn vào
- Enable Cache: Tùy chọn, có thể bật để tăng tốc độ.
- Lưu cấu hình và khởi động lại Nginx (vào Services > Nginx > Restart).

Bước 3: Cấu hình VPS chính
- Đảm bảo website hoạt động:
- Trên VPS chính, kiểm tra website/source code đã chạy ổn định trên aaPanel.
- Setup cho source bình thường
- Vào Website > Chọn domain > Kiểm tra cấu hình Nginx và SSL
Bước 4: Cấu hình Cloudflare
- Thêm domain vào Cloudflare:
- Đăng nhập Cloudflare, thêm domain (example.com).
- Cập nhật bản ghi DNS:
- A Record: Tên example.com, giá trị là IP của VPS Proxy, bật Proxy (đám mây màu cam).
- Đợi DNS cập nhật (thường 1-5 phút).
Khẳng định về tính ổn định và lý do sử dụng cấu hình này
Một số bạn hỏi tại sao không sử dụng Proxy Project có sẵn trong aaPanel thay vì cấu hình reverse proxy thủ công. Mình xin giải thích:
- Proxy Project trong aaPanel: Đây là một tính năng tiện lợi, cho phép thiết lập proxy nhanh mà không cần cấu hình sâu. Tuy nhiên, nó có một số hạn chế:
- Thiếu linh hoạt: Proxy Project phù hợp với các kịch bản đơn giản, nhưng khó tùy chỉnh nâng cao (ví dụ: cấu hình cache, header, hoặc giới hạn IP cụ thể).
- Hiệu năng: Với các website có lưu lượng lớn, Proxy Project đôi khi không tối ưu bằng cấu hình Nginx reverse proxy thủ công.
- Bảo mật: Proxy Project không tích hợp sẵn các tính năng bảo mật nâng cao như WAF hoặc giới hạn truy cập theo IP, trong khi cấu hình thủ công cho phép bạn kiểm soát tốt hơn.
Lưu ý quan trọng
- Hiệu năng: VPS Proxy nên có RAM tối thiểu 1GB và băng thông tốt (>1Gbps) để xử lý lưu lượng.
- Bảo mật aaPanel: aaPanel là mã nguồn mở, một số chuyên gia lo ngại về bảo mật. Đảm bảo cập nhật thường xuyên và sử dụng mật khẩu mạnh.
- Squid Proxy (tùy chọn): Nếu muốn dùng Squid thay vì Nginx, bạn có thể cài Squid trên VPS Proxy để tạo proxy server. Tham khảo hướng dẫn cài đặt Squid.
- Chi phí: aaPanel miễn phí, nhưng một số plugin nâng cao có thể mất phí. Kiểm tra trên trang chính thức nếu cần.