Kompatibilita NO_PROXY v curl, .NET a kontajneroch
Premeňte spoločnú politiku priameho smerovania na konfiguráciu špecifickú pre klienta pomocou malej sady reprezentatívnych cieľov.
Tím vloží jeden obchádzací reťazec do zdieľaného súboru prostredia. curl ide priamo, iná aplikácia používa proxy a kontajner sa opäť správa inak. Zdieľaný súbor distribuoval rovnaké znaky. Nedistribuoval jeden zdieľaný parser.
Trvalým objektom je politika: ktoré ciele majú byť priame a za akých podmienok? Držte ju oddelene od reťazca, ktorý každý program potrebuje.
Najprv zapíšte očakávané trasy
Používajte reprezentatívne adresy vrátane hraničných prípadov, nielen jednoduchých úspechov:
| Tvar cieľa | Otázka pre vlastníka politiky |
|---|---|
| Rodičovská doména | Má sa obchádzať, alebo len jej deti? |
| Subdoména | Dedí tú istú trasu? |
| Doslovná súkromná IP | Je tá adresa priamo dostupná z tohto klienta? |
| Tá istá služba pod názvom hostiteľa | Majú sa požiadavky podľa názvu a podľa adresy zhodovať? |
| Iný port služby | Pokrýva výnimka hostiteľa alebo jeden poslucháč? |
Potom identifikujte spotrebiteľov: démon sťahujúci obraz, program vnútri kontajnera, knižnica HTTP nejakého jazyka a interaktívny prehliadač môžu byť samostatné záznamy. Konfigurácia proxy klienta Docker môže naplniť hodnoty prostredia kontajnera bez toho, aby každý klient vnútri musel implementovať rovnaké pravidlá zhody.
Prekladajte namiesto slepého kopírovania
Jedným zdokumentovaným príkladom skutočného rozdielu je hranica rodičovskej domény. Vylúčenie domény v curl zahŕňa pomenovanú doménu a zodpovedajúce deti. Politika prostredia .NET rozlišuje holé meno od tvaru subdomény s vedúcou bodkou. Univerzálne pravidlo „vždy pridaj vedúcu bodku“ nedokáže spoľahlivo vyjadriť obe politiky.
Podpora rozsahov IP tiež závisí od spotrebiteľa a jeho verzie. Stroj s novým samostatným curl môže stále spúšťať aplikáciu prepojenú so staršou libcurl alebo klienta používajúceho úplne inú knižnicu. Vydanie operačného systému nie je úplným zoznamom klientov.
Pre každého spotrebiteľa zaznamenajte podporované konfiguračné rozhranie a najmenšie vyjadrenie zamýšľaných trás. Krátky explicitný zoznam hostiteľov môže byť lepší ako dômyselný vzor, ktorého význam nikto nedokáže vysvetliť.
Držte dôkazy o konfigurácii oddelene od dôkazov o spojení
Analyzované nastavenie alebo API rozhodnutia o smerovaní môže ukázať, čo program vybral. Výsledok požiadavky potom ukáže, či bola tá trasa použiteľná. V .NET HttpClient.DefaultProxy.IsBypassed poskytuje tú kontrolu na strane konfigurácie, keď je používanou politikou predvolená proxy. Nediagnostikujte nedostupnú priamu službu ako zlyhanie parsera obchádzania len preto, že požiadavka vypršala.
Zachovajte hraničné ciele pri aktualizácii klienta alebo základného obrazu. Robia budúce zmeny kompatibility viditeľnými bez toho, aby celý tím musel znova zisťovať, prečo súbor obsahuje dva podobne vyzerajúce záznamy domény.