Kontroly stavu HAProxy pro dopředný proxy Squid
Sestavte kontrolu stavu HAProxy, která komunikuje s dopředným proxy, a rozlišujte dostupnost naslouchajícího portu, přijetí CONNECT a získání z původního serveru.
Soubor s názvem /check.txt na proxy hostiteli vypadá jako samozřejmý cíl kontroly stavu. Háček je v tom, že explicitní dopředný listener Squidu není běžný web, který by obsluhoval kořen dokumentů tohoto hostitele.
Požadavek ve stylu původního serveru, například HEAD /check.txt HTTP/1.1, vynechává absolutní cíl očekávaný u běžného HTTP požadavku přes dopředný proxy. Podle konfigurace může být odmítnut nebo ho může obsloužit jiná místní služba. Oba výsledky vám mohou říci méně, než naznačuje panel.
Zvolte službu, kterou potřebujete mít dostupnou
| Kontrola | Užitečný důkaz |
|---|---|
| TCP spojení k listeneru proxy | Dostupný proces toto spojení přijme. |
| CONNECT na řízený cíl | Proxy tento požadavek na tunel přijme. |
| Získání HTTP přes proxy | Zvolená cesta požadavku může vrátit očekávanou odpověď. |
Ve třetím případě požadavek potřebuje cíl, například:
HEAD http://probe.example.internal/proxy-ready HTTP/1.1
Host: probe.example.internal
Název hostitele je ilustrativní. Použijte řízený koncový bod, který proxy umí přeložit a na který má záměrně povolený přístup. http-check send v HAProxy umožňuje zvolit metodu, URI, verzi a hlavičky; nakonfigurujte tento požadavek explicitně, místo abyste beze změny převzali příklad původního serveru.
HEAD umí zkontrolovat stav odpovědi a hlavičky. Nedokáže ověřit tělo odpovědi, které se nikdy nepřenese. Pokud kontrakt stavu vyžaduje značku v těle, zvolte vhodnou kontrolu GET a tuto značku ověřte.
Když jde o autentizaci proxy, držte účet kontroly a omezení zdrojů úzké. Vyřazení celého listeneru z autentizace kvůli zelené značce mění službu, která se chrání.
Nakonec rozhodněte, co má neúspěšná kontrola odstranit. Řízený výpadek původního serveru může současně selhat kontrolu předávání u každého proxy. Může to být právě závislost, kterou chcete měřit, nebo důvod držet stav listeneru a dostupnost od konce ke konci jako oddělené signály.