HAProxy là một ứng dụng phần mềm mạng cung cấp tính sẵn sàng cao, cân bằng tải và ủy quyền cho các ứng dụng mạng TCP và HTTP. Nó phù hợp cho lưu lượng truy cập cao và quyền hạn nhiều trang web. Bài viết này sẽ chỉ cho bạn cách cài đặt và thiết lập HAProxy trên Ubuntu 14.04.
Mặc dù HAProxy có một số tính năng nổi bật, bài viết này tập trung vào cách thiết lập HAProxy để "proxy" ứng dụng web của bạn.
Cài đặt HAProxy
Vì Ubuntu 14.04 không được phát hành với HAProxy 1.5 (bản phát hành ổn định mới nhất tại thời điểm viết), chúng tôi sẽ phải sử dụng PPA để có thể cài đặt nó bằng cách sử dụng apt-get
:
add-apt-repository ppa:vbernat/haproxy-1.5
Tiếp theo, cập nhật hệ thống:
apt-get update
apt-get dist-upgrade
Bây giờ cài đặt HAProxy bằng lệnh sau:
apt-get install haproxy
Nếu mọi thứ thành công, thì bạn đã hoàn tất cài đặt HAProxy và có thể tiến hành bước tiếp theo.
Cấu hình HAProxy
Tệp cấu hình HA Proxy được chia thành hai phần - "toàn cầu" và "proxy". Một giao dịch với cấu hình toàn quy trình, trong khi cái còn lại bao gồm cấu hình mặc định, phần đầu và phần phụ trợ.
Phần toàn cầu
Với trình soạn thảo văn bản yêu thích của bạn, hãy mở /etc/haproxy/haproxy.cfg
và bạn sẽ thấy các phần được xác định trước: "toàn cầu" và "mặc định". Điều đầu tiên mà bạn có thể muốn làm là tăng maxconn
kích thước hợp lý, vì điều này ảnh hưởng đến các kết nối mà HAProxy cho phép. Quá nhiều kết nối có thể khiến dịch vụ web của bạn bị sập do nhiều yêu cầu. Bạn sẽ cần phải điều chỉnh kích thước để xem những gì phù hợp với bạn. Trong phần toàn cầu, thêm hoặc thay đổi maxconn
thành 3072.
Trong phần mặc định, thêm các dòng sau vào mode http
:
option forwardfor
option http-server-close
Điều này sẽ thêm X-Forwarded-For
các tiêu đề cho mỗi yêu cầu, cũng như giảm độ trễ giữa HAProxy và để duy trì các kết nối liên tục của máy khách.
Bộ phận ủy nhiệm
Frontend và Backend
Thông thường, điều đầu tiên khi sử dụng là thiết lập một lối vào để xử lý các kết nối HTTP. Thêm những điều sau:
frontend http-frontend
bind public_ip:80
reqadd X-Forwarded-Proto:\ http
default_backend wwwbackend
Lưu ý: Đảm bảo thay thế public_ip
bằng tên miền hoặc ip công khai của bạn. Nếu không, toàn bộ thiết lập này sẽ không hoạt động.
Sau khi bạn hoàn tất cấu hình frontend, bây giờ bạn có thể thêm phần phụ trợ của mình bằng cách thêm các dòng sau vào cuối cấu hình của bạn:
backend wwwbackend
server 1-www private_ip_1:80 check
server 2-www private_ip_2:80 check
server 3-www private_ip_3:80 check
Cấu hình phụ trợ sử dụng ở đây tạo ra một kết nối được đặt tên X-www
để private_ip_X:80
(Thay thế X với 1 - 3. và thay thế private_ip_X
với ip tư nhân hoặc công cộng của bạn). Điều này sẽ cho phép bạn tải cân bằng giữa mỗi bộ máy chủ (giả sử bạn có nhiều hơn một máy chủ). Các check
tùy chọn làm cho tải trọng cân bằng thực hiện kiểm tra sức khỏe trên máy chủ.
Khi bạn đã hoàn tất, hãy lưu tệp cấu hình, sau đó khởi động lại HAProxy bằng cách chạy:
service haproxy restart
Nếu mọi thứ đều hoạt động, thì bạn sẽ có thể kết nối http://public_ip/
(thay thế nó bằng IP Vultr VPS của bạn) và xem trang web của bạn.