Sử dụng tham số URL để cân bằng tải với HAProxy


9

Tôi có một hệ thống cân bằng tải thông qua cookie, nhưng tôi muốn sử dụng tham số URL thay thế. (Cụ thể, tôi có một ứng dụng giao diện người dùng không hỗ trợ cookie). Thiết lập của tôi hơi phức tạp - Tôi có một hệ thống nhiều người chơi và tôi sử dụng một bảng dính với cookie này để đảm bảo những người khác nhau chơi cùng một trò chơi sẽ đến cùng một máy chủ. Điều này hoạt động rất tốt, ngoại trừ việc các tham số URL dường như không làm gì cả. Đây là tất cả với haproxy 1.5dev17

Phụ trợ có liên quan của tôi là:

defaults
   log            global
   mode           http
   option         httplog
   option         dontlognull
   retries        3
   option         redispatch
   option         http-server-close

   maxconn        2000
   contimeout     5000
   clitimeout     50000
   srvtimeout     50000

backend simulate
    option httpchk OPTIONS /simulate/api/status
    stick-table type string len 40 size 5M expire 30m
    stick store-response set-cookie(SIMULATE_STICKY_SESSION) table simulate
    stick on cookie(SIMULATE_STICKY_SESSION) table simulate
    stick on url_param(SIMULATE_STICKY_SESSION) table simulate

    server app1 10.0.2.11:8080  cookie app1 check inter 10000
    server app2 10.0.3.11:8080  cookie app2 check inter 10000

Lưu ý rằng SIMULATE_STICKY_SESSION được tạo bởi ứng dụng của tôi (dựa trên nhóm người chơi).

Khi tôi gọi URL, tôi cần phải vượt qua jsessionid (để Tomcat sẽ tìm đúng phiên). Tôi đang làm

http://my.domain.com/myapp/url;SIMULATE_STICKY_SESSION=1918C909D3F30DB09C2F96B75C57D015.app1+jsessionid;jsessionid=1918C909D3F30DB09C2F96B75C57.

Điều này dường như không chọn tham số phiên dính vì 50% thời gian nó đến máy chủ sai. Tôi đã thử sử dụng param làm chuỗi truy vấn (sau dấu?) Nhưng nó cũng không hoạt động. Tôi đang làm gì sai?

Câu trả lời:


3

Một phản hồi đã được cung cấp ở đây trong danh sách gửi thư haproxy

đoạn trích

chỉ cần cập nhật dòng dưới đây trong cấu hình của bạn thành:

 stick on url_param(SIMULATE_STICKY_SESSION,;) table simulate

Theo mặc định, url_param tìm kiếm một tham số sau dấu chấm hỏi (?). Cấu hình ở trên ghi đè lên điều này bằng cách tìm cookie của bạn từ dấu chấm phẩy (;).

Lưu ý: bạn phải chạy haproxy 1,5dev gần đây, tốt nhất là dev 18.


Như đã lưu ý trong danh sách người dùng, câu trả lời là thay đổi dòng thành: dính vào url_param (SIMULATE_STICKY_SESSION,;) mô phỏng bảng
Will Glass
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.