Cách định cấu hình HAProxy cho kết nối WebSocket

Cach Dinh Cau Hinh Haproxy Cho Ket Noi Websocket



Các ứng dụng WebSocket có giao tiếp hai chiều và thời gian thực giữa máy khách và máy chủ. Ngay cả với các kết nối WebSocket, bạn vẫn cần một cách để phân phối lưu lượng truy cập để tránh làm máy chủ bị quá tải, dẫn đến thời gian ngừng hoạt động và không khả dụng.

HAProxy là một ví dụ về bộ cân bằng tải miễn phí và đáng tin cậy, cũng hoạt động như một proxy ngược. Bạn có thể định cấu hình HAProxy cho các kết nối WebSocket để sử dụng tốt hơn các tính năng của WebSockets, đặc biệt là truyền dữ liệu theo thời gian thực, đồng thời giảm thiểu tải máy chủ bằng HAProxy. Bài đăng này trình bày tất cả các bước cần thiết để định cấu hình HAProxy cho các kết nối WebSocket.

Hướng dẫn từng bước về cách định cấu hình HAProxy cho kết nối WebSocket

Với các kết nối WebSocket, giao tiếp giữa máy chủ và máy khách sẽ tồn tại lâu dài. Nó vẫn tồn tại cho đến khi máy chủ hoặc máy khách quyết định đóng nó. Như vậy, việc có cách làm việc với bộ cân bằng tải đảm bảo lưu lượng có thể được phân phối sang máy chủ khác nếu máy chủ bị quá tải. Bằng cách đó, máy khách và máy chủ có thể tận hưởng kết nối lâu dài và không bị gián đoạn ở độ trễ thấp.







1. Cài đặt HAProxy

Bước đầu tiên để định cấu hình HAProxy cho các kết nối WebSocket là đảm bảo rằng bạn đã cài đặt HAProxy. Nếu bạn đã cài đặt rồi thì bỏ qua bước này. Nếu không, hãy chạy lệnh sau để cài đặt nó:



$ sudo cài đặt apt-get haproxy



2. Chỉnh sửa cấu hình HAProxy

Để định cấu hình HAProxy cho các kết nối WebSocket, chúng ta phải chỉnh sửa cấu hình HAProxy để hỗ trợ các kết nối WebSocket. Chúng ta phải sửa đổi phần “Mặc định” và tạo các phần “Giao diện người dùng” và “Phần cuối”.





Mở cấu hình HAProxy bằng trình soạn thảo văn bản như sau:

$ sudo nano / vân vân / haproxy / haproxy.cfg

Trong phần “Mặc định”, hãy sửa đổi nó như được trình bày trong hình ảnh sau đây. Đầu tiên, chúng tôi xác định rằng chúng tôi đang làm việc với các kết nối HTTP và xác định nơi gửi tệp nhật ký. Tiếp theo, chúng tôi đặt thời gian chờ cho các hoạt động khác nhau. Ví dụ: thời gian chờ kết nối là thời gian tối đa mà một nỗ lực kết nối tới máy chủ sẽ mất. Nếu đạt đến thời gian tối đa, kết nối được kết luận là không thành công và có thể thử lại.



Trong trường hợp này, chúng tôi đặt thời gian chờ kết nối là 5000 mili giây. Bạn có thể điều chỉnh thời gian chờ theo cách bạn thấy chúng phù hợp nhất với trường hợp của mình. Điều chỉnh chúng dựa trên ứng dụng của bạn và ghi nhớ thời lượng của các phiên WebSocket cũng như thời gian tồn tại mà bạn mong đợi.

Tiếp theo, chúng ta phải tạo phần “Giao diện người dùng” để liên kết những cổng nào sẽ sử dụng cho các kết nối WebSocket và máy chủ phụ trợ nào sẽ tham chiếu. Trong trường hợp này, chúng tôi chỉ định cổng 80 và cung cấp URL để truy cập trang “Thống kê” để theo dõi HAProxy của chúng tôi. Cuối cùng, chúng tôi xác định phần phụ trợ nào sẽ tham chiếu trong cân bằng tải.

Trong phần “Phần cuối”, chúng tôi phân phối tải bằng cách sử dụng vòng tròn. “Tùy chọn chuyển tiếp cho” chỉ định HAProxy để bao gồm tiêu đề “X-Forward-For” chứa địa chỉ IP của khách hàng khi gửi yêu cầu kết nối. Bằng cách đó, máy chủ phụ trợ sẽ nhận được IP máy khách chính xác.

“Tùy chọn http-server-close” hạn chế tài nguyên bằng cách loại bỏ mọi kết nối nhàn rỗi khỏi việc chiếm tài nguyên máy chủ. Mặc dù các kết nối WebSocket tồn tại lâu dài nhưng chúng ta phải kiểm tra các kết nối không hoạt động lâu dài và đóng chúng để tránh lãng phí tài nguyên không cần thiết.

Cuối cùng, thêm máy chủ phụ trợ mà bạn sẽ sử dụng để phân phối lưu lượng truy cập. Đảm bảo rằng bạn cung cấp địa chỉ IP chính xác cho máy chủ và thay thế địa chỉ IP trong hình ảnh sau:

HAProxy của bạn hiện đã được định cấu hình cho các kết nối WebSocket. Lưu các thay đổi và đóng tập tin.

3. Kiểm tra tính hợp lệ

Trước khi khởi động lại HAProxy, chúng ta có thể chạy lệnh nhanh để kiểm tra xem tệp có hợp lệ và không có lỗi hay không. Để làm điều đó, hãy chạy lệnh sau:

$ sudo haproxy -c -f / vân vân / haproxy / haproxy.cfg

4. Khởi động lại và kiểm tra kết nối WebSocket

Khi tệp hợp lệ, hãy khởi động lại dịch vụ HAProxy.

Đó là nó. Bạn đã định cấu hình HAProxy cho các kết nối WebSocket. Bạn có thể kiểm tra kết nối để đảm bảo rằng tất cả lưu lượng truy cập WebSocket được chuyển tiếp chính xác.

Phần kết luận

Định cấu hình HAProxy cho kết nối WebSocket là giải pháp được nhiều người tìm kiếm, đặc biệt là các quản trị viên web. Bài đăng này trình bày chi tiết quy trình, đưa ra các bước và ví dụ để đảm bảo rằng bạn thoải mái làm theo và quản lý để thực hiện tương tự trong trường hợp của mình. Hãy thực hiện từng bước và đảm bảo rằng bạn hiểu khái niệm cũng như quy trình thực hiện nó.