Перевірки стану HAProxy для прямого проксі Squid
Побудуйте перевірку стану HAProxy, яка спілкується з прямим проксі, і розрізняйте доступність слухача, приймання CONNECT та отримання від джерела.
Файл з назвою /check.txt на хості проксі звучить як очевидна мета перевірки. Підступ у тому, що явний прямий слухач Squid — не звичайний сайт, який віддає корінь документів цього хоста.
Запит у стилі джерела, наприклад HEAD /check.txt HTTP/1.1, пропускає абсолютну мету, яку очікують для звичайного HTTP-запиту через прямий проксі. Залежно від конфігурації його може бути відхилено або оброблено іншою локальною службою. Будь-який результат може сказати менше, ніж підказує панель.
Виберіть службу, яку потрібно тримати доступною
| Перевірка | Корисний доказ |
|---|---|
| TCP-з'єднання зі слухачем проксі | Доступний процес приймає це з'єднання. |
| CONNECT до контрольованої мети | Проксі приймає цей запит тунелю. |
| Отримання HTTP через проксі | Вибраний шлях запиту може повернути очікувану відповідь. |
У третьому випадку запиту потрібна мета, наприклад:
HEAD http://probe.example.internal/proxy-ready HTTP/1.1
Host: probe.example.internal
Ім'я хоста наведено лише для прикладу. Використовуйте контрольовану кінцеву точку, яку проксі вміє розв'язувати і до якої йому навмисно дозволено доступ. http-check send у HAProxy підтримує вибір методу, URI, версії та заголовків; налаштуйте цей запит явно, замість того щоб незмінно успадковувати приклад сервера-джерела.
HEAD може перевірити статус відповіді та заголовки. Він не може перевірити тіло відповіді, яке ніколи не передається. Якщо контракт стану вимагає маркер у тілі, виберіть відповідну перевірку GET і перевірте цей маркер.
Коли задіяна автентифікація проксі, тримайте обліковий запис перевірки та обмеження джерел вузькими. Звільнення всього слухача від автентифікації заради зеленої позначки змінює службу, яку захищають.
Нарешті, вирішіть, що має прибирати невдала перевірка. Контрольований збій джерела може одночасно завалити перевірку пересилання в кожного проксі. Це може бути саме та залежність, яку ви хочете виміряти, або причина тримати стан слухача й наскрізну доступність окремими сигналами.