Điểm:1

Phát hiện phản hồi 502 trong Nginx Load Balancer

lá cờ jm

Tôi có thiết lập sau - Bộ cân bằng tải Nginx nhận lưu lượng truy cập https và chuyển qua các nút. Trên mỗi nút có một proxy ngược xử lý lưu lượng truy cập https và chuyển dữ liệu tới App1, App2 ở dạng văn bản thuần túy.

-> LB -> RP -> App1, App2
       `-> RP -> Ứng dụng1, Ứng dụng2

Bây giờ, vấn đề là nếu App1 không hoạt động trên một nút, bộ cân bằng tải không phát hiện ra điều đó và đang vui vẻ phục vụ 502 trở lại máy khách. Tôi đoán đó là do proxy ngược vẫn hoạt động và đang mã hóa lưu lượng và do đó, bộ cân bằng tải chỉ chuyển qua dữ liệu. Làm cách nào tôi có thể thông báo cho bộ cân bằng tải rằng App1 trên nút1 không hoạt động và chuyển sang nút khác?

LB nginx.conf đơn giản hóa:

dòng {
    bản đồ "$ssl_preread_server_name:$server_port" $namehttps {
        tên máy chủ;
        some-address.io:8443 test_site;
    }

    ngược dòng test_site {
        máy chủ 192.168.1.10;
        máy chủ 192.168.1.11
    }
    người phục vụ {
        proxy_pass $namehttps;
        ssl_preread on;
    }
}

Proxy ngược nginx.conf hoạt động như một proxy ngược tiêu chuẩn chấm dứt lưu lượng truy cập ssl và chuyển lưu lượng truy cập không được mã hóa đến một ứng dụng.

Điểm:0
lá cờ my

Nếu tôi hiểu chính xác ý của bạn, bạn có thể sử dụng kiểm tra tình trạng hoạt động, về cơ bản là các yêu cầu HTTP định kỳ.

Theo tài liệu NGINX (https://docs.nginx.com/nginx/admin-guide/load-balancer/http-health-check/), mà tôi sẽ tóm tắt ở đây trong trường hợp trang bị lỗi 404, bạn phải:

  • xác định trong người phục vụ phần cấu hình a địa điểm / (hoặc đường dẫn tương tự) phần;

  • bao gồm cái proxy_passkiểm tra sức khỏe chỉ thị trong phần địa điểm / (hoặc tương tự);

  • bên trong http Thượng nguồn nhóm máy chủ, hãy xác định bộ nhớ dùng chung bằng cách thêm vùng phụ trợ 64k (hoặc giá trị tương tự).

Tuy nhiên, điều này không hoạt động nếu bạn đang sử dụng dòng chặn, vì các luồng hoạt động ở lớp TCP/UDP. Thượng nguồn phải được chứa trong một http khối, vì vậy bạn có thể hưởng lợi từ các tính năng lớp cao hơn của http mô-đun.

Điểm:0
lá cờ cz

Vấn đề là bạn đang sử dụng dòng và không nên.

nginx không hiển thị tải trọng kết nối khi sử dụng dòng ủy nhiệm. Nó không có cách nào để biết rằng có HTTP trong đó, cũng như không dòng quan tâm bất cứ điều gì về trọng tải.

Bạn sẽ cần sử dụng "một proxy ngược tiêu chuẩn chấm dứt lưu lượng ssl".

Rapolas K. avatar
lá cờ jm
Tôi không thể tránh sử dụng luồng vì đây là trình cân bằng tải chung. Hơn nữa, tôi không thể chấm dứt lưu lượng truy cập ssl trên bộ cân bằng tải, vì có một yêu cầu là không có lưu lượng truy cập không được mã hóa nào đi qua mạng (ngay cả khi đó là nội bộ).
Michael Hampton avatar
lá cờ cz
@RapolasK. Sau đó, bạn không thể phát hiện 502 phản hồi. Bạn sẽ phải làm một cái gì đó khác. Nhưng tại sao bạn không thể mã hóa lại lưu lượng?

Đă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.