Tôi có cấu hình HAProxy để chấp nhận yêu cầu tới * .mysubdomain.com. HAProxy sẽ phân tích cú pháp tên miền phụ (prod hoặc dev từ prod.mysubdomain.com hoặc dev.mysubdomain.com) và chuyển tiếp tới phần phụ trợ chính xác. Hai backend tồn tại, một cho prod và một cho dev. Mỗi phụ trợ chứa hai mục máy chủ hướng tới các cá thể Marathon LB trên mỗi tên miền phụ.Xác thực JWT trong HAProxy
Tên miền phụ yêu cầu cookie JWT để xác thực trên chương trình phụ trợ. Tôi có khóa công khai để kiểm tra tính hợp lệ của JWT, nhưng muốn làm như vậy trong HAProxy. Có cách nào để thêm mã của riêng tôi để thực hiện kiểm tra tính hợp lệ JWT trong cấu hình HAProxy không?
Các tập tin cấu hình HAProxy là như sau:
global
maxconn 256
defaults
mode http
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
frontend http-in
bind *:80
mode http
# Returns true when one of the headers contains one of the strings either isolated or delimited by dots. This is used to perform domain name matching.
acl host_dev hdr_dom(host) -i dev
acl host_prod hdr_dom(host) -i prod
acl jwtPresent req.cook(JWT) -m found
use_backend prod_domain if jwtPresent host_prod
use_backend dev_domain if jwtPresent host_dev
default_backend prod_domain
backend prod_domain
balance roundrobin
server prodDomain1 "${MARATHON_LB_PROD_1}" maxconn 32 check
server prodDomain2 "${MARATHON_LB_PROD_2}" maxconn 32 check
backend dev_domain
balance roundrobin
server devDomain1 "${MARATHON_LB_DEV_1}" maxconn 32 check
server devDomain2 "${MARATHON_LB_DEV_2}" maxconn 32 check
Tôi cũng vậy! Nó sẽ còn tốt hơn nữa, nếu HAP có thể tiêm các yêu cầu như là Tiêu đề Yêu cầu. –