Điểm:0

chọn back end haproxy tcp tùy thuộc vào ip nguồn

lá cờ de

Tôi có kiến ​​thức haproxy cơ bản và biết cách xử lý việc lựa chọn phụ trợ tcp tùy thuộc vào tên máy chủ SNI.

Các dòng có liên quan là

    acl is_myhost req.ssl_sni -i my.host.com
    acl is_otherhost req.ssl_sni -i other.host.com


    use_backend mybackend nếu is_myhost
    use_backend otherbackend nếu is_otherhost

Bây giờ tôi muốn thay đổi chúng thành thứ gì đó cho phép tôi chọn mặt sau cũng tùy thuộc vào ip nguồn nhưng tôi không biết cú pháp chính xác cho cấu hình giả bên dưới hoặc liệu điều này có khả thi hay không

    acl is_myhost_for_specif req.ssl_sni -i my.host.com <và nguồn ip = 1.2.3.4>
    acl is_myhost_for_others req.ssl_sni -i my.host.com <và ip nguồn != 1.2.3.4>
    acl is_otherhost req.ssl_sni -i other.host.com


    use_backend mybackend1 nếu is_myhost_for_specific
    use_backend mybackend2 nếu is_myhost_for_others
    use_backend otherbackend nếu is_otherhost

George Y avatar
lá cờ vn
làm thế nào về việc hỏi haproxy trực tiếp?
gelonida avatar
lá cờ de
Tôi thích sự kiên trì và khả năng tìm kiếm của các câu hỏi trên SO, vì vậy tôi đã thử ở đây trước. Nhưng có. gửi câu hỏi đến danh sách gửi thư haproxy (`[email protected]`) là một tùy chọn khác.
Điểm:2
lá cờ ng

Mã giả cho ACL của bạn không chính xác, vì khai báo ACL không có cú pháp cho logic AND/OR. Di chuyển nó đến một nơi mà bạn sử dụng ACL, như trong ví dụ bên dưới.
Đối với IP nguồn có src (https://cbonte.github.io/haproxy-dconv/2.2/configuration.html#7.3.3-src), ví dụ.:

Xin lưu ý rằng cú pháp khớp hai điều kiện trong câu lệnh if không

use_backend mybackend nếu điều kiện1 và điều kiện2

nhưng chỉ

use_backend mybackend nếu điều kiện1 điều kiện2

acl test_mạng src 192.168.10.0/24
acl test_mạng src 192.168.20.0/24
acl is_myhost_for_specif req.ssl_sni -i my.host.com

# cả hai acls phải đúng (is_myhost **và** test_network)
use_backend mybackend1 if is_myhost test_network
use_backend mybackend2 nếu is_myhost

Thứ tự của sử dụng_backend là quan trọng, vì vậy IP từ test_network đi đến mybackend1 và những người khác đi đến mybackend2 nếu SNI phù hợp. khai báo test_network ACL hai lần ở đây có nghĩa là "src_ip khớp với 192.168.10.0/24 HOẶC 192.168.20.0/24"

gelonida avatar
lá cờ de
Cảm ơn. Vâng, tôi biết mã giả của tôi là sai. nhưng may mắn thay nó đủ tốt để giải thích ý định của tôi. Câu trả lời của bạn dường như là **chính xác** những gì tôi đang tìm kiếm. Tôi không biết `test_network src`, tôi không biết rằng acls chỉ có thể chứa một điều kiện và câu lệnh if có thể kết hợp acls. Sẽ đánh dấu là câu trả lời đúng ngay khi tôi kiểm tra nó.
gelonida avatar
lá cờ de
mẹo khai báo acl hai lần cũng rất hữu ích
gelonida avatar
lá cờ de
Cuối cùng đã có thời gian để kiểm tra câu trả lời của bạn. Có một lỗi nhỏ trong dòng `use_backend mybackend1 if is_myhost and test_network` phải là `use_backend mybackend1 if is_myhost test_network` (không có `and`. `and` là ẩn. Cảm ơn một lần nữa
gelonida avatar
lá cờ de
sẽ đánh dấu là câu trả lời đúng ngay sau khi câu trả lời được sửa (yêu cầu thay đổi của tôi cần được phê duyệt)
gelonida avatar
lá cờ de
Tôi đã thêm một nhận xét khác vào các thay đổi của mình vì có vẻ như 20 người đánh giá đã xem các thay đổi của tôi nhưng không cảm thấy thoải mái khi chấp nhận chúng. Tôi hy vọng nhận xét bổ sung của tôi giúp thay đổi dễ hiểu/dễ chấp nhận hơn
gelonida avatar
lá cờ de
có lẽ bạn có thể áp dụng thay đổi cho câu trả lời của mình. Quy trình xem xét yêu cầu chỉnh sửa của tôi chậm một cách đáng ngạc nhiên đối với lỗi máy chủ. Có lẽ bởi vì haproxy không được biết đến nhiều. Nếu không có những thay đổi được đề xuất của tôi, haproxy sẽ phàn nàn về một `acl` không xác định có tên `and`

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.