Kiểm tra sức khỏe HAProxy cho proxy chuyển tiếp Squid
Xây dựng kiểm tra sức khỏe HAProxy nói chuyện với proxy chuyển tiếp và phân biệt khả năng tiếp cận của listener, việc chấp nhận CONNECT và việc lấy nội dung từ nguồn gốc.
Một tệp tên /check.txt trên máy chủ proxy nghe như một mục tiêu sức khỏe hiển nhiên. Cái bẫy là listener chuyển tiếp tường minh của Squid không phải một trang web thông thường phục vụ thư mục gốc tài liệu của máy chủ đó.
Một yêu cầu kiểu nguồn gốc như HEAD /check.txt HTTP/1.1 bỏ qua đích tuyệt đối được mong đợi cho một yêu cầu HTTP thông thường qua proxy chuyển tiếp. Tùy cấu hình, nó có thể bị từ chối hoặc do một dịch vụ cục bộ khác xử lý. Cả hai kết quả đều có thể nói ít hơn những gì bảng điều khiển gợi ý.
Chọn dịch vụ bạn cần giữ cho sẵn sàng
| Kiểm tra | Bằng chứng hữu ích |
|---|---|
| Kết nối TCP tới listener của proxy | Một tiến trình tiếp cận được chấp nhận kết nối đó. |
| CONNECT tới một đích được kiểm soát | Proxy chấp nhận yêu cầu đường hầm đó. |
| Lấy HTTP qua proxy | Đường dẫn yêu cầu đã chọn có thể trả về phản hồi mong đợi. |
Trong trường hợp thứ ba, yêu cầu cần một đích, ví dụ:
HEAD http://probe.example.internal/proxy-ready HTTP/1.1
Host: probe.example.internal
Tên máy chủ chỉ là ví dụ. Hãy dùng một điểm cuối được kiểm soát mà proxy phân giải được và được phép chủ động tiếp cận. http-check send của HAProxy hỗ trợ chọn phương thức, URI, phiên bản và tiêu đề; hãy cấu hình yêu cầu đó một cách tường minh thay vì kế thừa nguyên xi một ví dụ máy chủ nguồn gốc.
HEAD có thể kiểm tra trạng thái và tiêu đề phản hồi. Nó không thể xác thực phần thân phản hồi không bao giờ được truyền đi. Nếu giao kèo sức khỏe yêu cầu một dấu hiệu trong phần thân, hãy chọn kiểm tra GET phù hợp và xác thực dấu hiệu đó.
Giữ tài khoản kiểm tra và các giới hạn nguồn thật hẹp khi có xác thực proxy. Miễn trừ toàn bộ listener khỏi xác thực để có dấu tích xanh sẽ thay đổi chính dịch vụ đang được bảo vệ.
Cuối cùng, hãy quyết định điều gì một lần kiểm tra thất bại nên gỡ bỏ. Một sự cố nguồn gốc được kiểm soát có thể làm kiểm tra chuyển tiếp của mọi proxy thất bại cùng lúc. Đó có thể đúng là mối phụ thuộc bạn muốn đo, hoặc là lý do để giữ sức khỏe listener và tính sẵn sàng đầu-cuối thành các tín hiệu riêng.