Tiếng Việt
Cân bằng tải
WARNING
Tính năng này chỉ có trên máy chủ cài ứng dụng Nginx và chỉ dành cho gói trả phí. Mục Cân Bằng Tải không hiển thị với website alias.
Cân bằng tải biến website trên máy chủ hiện tại thành điểm tiếp nhận truy cập: Nginx nhận yêu cầu của khách rồi phân phối chúng đến nhiều máy chủ backend, giúp website chịu tải tốt hơn và vẫn hoạt động khi một máy chủ gặp sự cố.
Khi nào cần cân bằng tải
- Một máy chủ không còn đủ tài nguyên để phục vụ lượng truy cập của website.
- Bạn cần website tiếp tục hoạt động khi một máy chủ backend phải bảo trì hoặc gặp sự cố.
- Bạn muốn thêm hoặc bớt máy chủ backend theo nhu cầu mà không đổi tên miền.
Trước khi bật, hãy chuẩn bị các máy chủ backend:
- Mỗi máy chủ backend phải chạy cùng một ứng dụng và phục vụ cùng tên miền với website này. Nginx giữ nguyên tên miền (header
Host) khi chuyển tiếp yêu cầu. - Yêu cầu được chuyển tiếp đến backend qua HTTP (không mã hoá). Hãy cài SSL trên website cân bằng tải; máy chủ backend chỉ cần mở cổng HTTP (thường là
80). - Nếu máy chủ backend có bật tường lửa, hãy cho phép địa chỉ IP của máy chủ cân bằng tải truy cập cổng đó. Xem Firewall.
Bật cân bằng tải
- Mở trang Tổng quan của website.
- Trong nhóm Cân Bằng Tải, bấm ô Cân Bằng Tải.
- Tại Phương Pháp Cân Bằng Tải, chọn một phương pháp (xem Phương pháp cân bằng tải).
- Trong khung Máy Chủ Cân Bằng Tải, bấm
Thêm máy chủvà điền thông tin cho từng máy chủ backend (xem Cấu hình máy chủ backend). - Bấm
Lưuđể lưu danh sách máy chủ. - Bấm
Bật Cân Bằng Tảiở góc trên hộp thoại và đợi tiến trình hoàn tất trong trang Sự kiện.
TIP
Bạn phải lưu ít nhất một máy chủ backend trước khi bật, nếu không sẽ nhận thông báo Không có máy chủ cân bằng tải.
Khi cân bằng tải đang bật, nút lưu đổi thành Lưu & Đồng Bộ: mỗi lần bấm, FlashPanel lưu thay đổi và áp dụng ngay cấu hình mới lên máy chủ.
Cấu hình máy chủ backend
Mỗi dòng trong khung Máy Chủ Cân Bằng Tải là một máy chủ backend, gồm các trường:
| Trường | Ý nghĩa |
|---|---|
| Địa chỉ IP | Địa chỉ IPv4 của máy chủ backend. Bạn có thể chọn từ danh sách (gồm localhost (127.0.0.1) và các máy chủ trong tài khoản) hoặc nhập trực tiếp. |
| Cổng | Cổng HTTP mà máy chủ backend đang lắng nghe, mặc định 80. |
| Trọng số | Số nguyên từ 1 trở lên, mặc định 1. Máy chủ có trọng lượng cao hơn nhận nhiều yêu cầu hơn. |
| Backup | Máy chủ dự phòng: chỉ nhận yêu cầu khi tất cả máy chủ chính không khả dụng. Không dùng được với phương pháp IP Hash. |
| Down | Tạm ngừng gửi yêu cầu đến máy chủ này nhưng vẫn giữ nó trong danh sách, hữu ích khi bảo trì. |
Bấm biểu tượng X ở cuối dòng để xoá máy chủ khỏi danh sách, rồi bấm Lưu & Đồng Bộ để áp dụng.
Phương pháp cân bằng tải
| Phương pháp | Cách phân phối | Phù hợp khi |
|---|---|---|
| Round Robin (mặc định) | Lần lượt gửi yêu cầu đến từng máy chủ theo vòng tròn, có tính đến Trọng số. | Các máy chủ có cấu hình tương đương và yêu cầu xử lý nhanh. |
| Least Connections | Gửi yêu cầu đến máy chủ đang có ít kết nối nhất. | Thời gian xử lý mỗi yêu cầu chênh lệch nhiều (tải tệp, báo cáo lâu…). |
| IP Hash | Luôn gửi yêu cầu từ cùng một địa chỉ IP đến cùng một máy chủ. | Ứng dụng lưu phiên đăng nhập trên từng máy chủ và chưa dùng kho phiên dùng chung. |
Tắt cân bằng tải
- Mở trang Tổng quan của website, bấm ô Cân Bằng Tải.
- Bấm
Tắt Cân Bằng Tải.
Website trở lại cấu hình Nginx trước khi bật cân bằng tải và tự phục vụ toàn bộ truy cập. Danh sách máy chủ backend vẫn được giữ để dùng lại lần sau.
Lưu ý
- Phiên đăng nhập (session): nếu ứng dụng lưu session dạng tệp trên từng máy chủ, người dùng có thể bị đăng xuất khi yêu cầu sang máy chủ khác. Hãy lưu session vào kho dùng chung như Redis hoặc cơ sở dữ liệu, hoặc chọn phương pháp IP Hash.
- Tệp tải lên: tệp người dùng tải lên chỉ nằm trên máy chủ backend đã nhận yêu cầu. Hãy lưu tệp tải lên vào nơi dùng chung như Amazon S3 (hoặc dịch vụ tương thích S3) hay thư mục chia sẻ NFS.
- Cơ sở dữ liệu: các máy chủ backend nên kết nối đến cùng một cơ sở dữ liệu (hoặc một cụm cơ sở dữ liệu có đồng bộ) để dữ liệu nhất quán.
- Triển khai mã nguồn: khi cập nhật ứng dụng, hãy triển khai lên tất cả máy chủ backend để tránh mỗi máy chủ chạy một phiên bản khác nhau.
Nâng cao
Chỉnh sửa khối upstream
Khi bật cân bằng tải, danh sách máy chủ backend được ghi thành khối cấu hình flashpanel-load-balancer trong trang Cấu hình Nginx của website. Bạn có thể xem hoặc chỉnh sửa khối này để thêm tuỳ chọn nâng cao của Nginx, nhưng lần bấm Lưu & Đồng Bộ tiếp theo sẽ ghi đè các chỉnh sửa thủ công.
Lưu session PHP vào Redis
Với ứng dụng PHP, bạn có thể chuyển session sang Redis dùng chung bằng cách sửa cấu hình PHP FPM trên từng máy chủ backend (máy chủ cần có phần mở rộng PHPRedis, xem PHP), thay 10.0.0.5 bằng địa chỉ máy chủ Redis của bạn:
ini
session.save_handler = redis
session.save_path = "tcp://10.0.0.5:6379"WARNING
Chỉ thị sticky (giữ người dùng trên một máy chủ bằng cookie) chỉ có trong NGINX Plus (bản thương mại). Với Nginx mã nguồn mở, hãy dùng phương pháp IP Hash hoặc kho session dùng chung.