Komanda į bendrą aplinkos failą įrašo vieną praleidimo eilutę. curl eina tiesiogiai, kita programa naudoja tarpinį serverį, o konteineris vėl elgiasi kitaip. Bendras failas išdalijo tuos pačius simbolius. Jis neišdalijo vieno bendro analizatoriaus.

Ilgalaikis objektas yra politika: kurie paskirties taškai turi būti pasiekiami tiesiogiai ir kokiomis sąlygomis? Laikykite tai atskirai nuo eilutės, kurios reikia kiekvienai programai.

Pirmiausia užrašykite laukiamus maršrutus

Naudokite reprezentatyvius adresus, įskaitant ribinius atvejus, o ne tik lengvas sėkmes:

Paskirties taško formaKlausimas politikos savininkui
Pagrindinis domenasAr jis turi būti apeinamas, ar tik jo subdomenai?
SubdomenasAr jis paveldi tą patį maršrutą?
Tiesioginis privatus IPAr šis adresas tiesiogiai pasiekiamas iš šio kliento?
Ta pati paslauga per domeno vardąAr užklausos pagal vardą ir pagal adresą turi sutapti?
Kitas paslaugos portasAr išimtis apima mazgą, ar vieną klausytoją?

Tada nustatykite vartotojus: demonas, traukiantis atvaizdą, programa konteinerio viduje, kalbos HTTP biblioteka ir interaktyvi naršyklė gali būti atskiri įrašai. Docker kliento tarpinio serverio konfigūracija gali užpildyti konteinerio aplinkos reikšmes, neverčiant kiekvieno vidinio kliento įgyvendinti tų pačių sutapimo taisyklių.

Verskite, o ne kopijuokite aklai

Vienas dokumentuotas tikro skirtumo pavyzdys yra pagrindinio domeno riba. curl domeno išimtis apima nurodytą domeną ir atitinkančius vaikus. .NET aplinkos politika skiria pliką vardą nuo subdomeno formos su pradiniu tašku. Universali taisyklė „visada pridėti pradinį tašką“ negali patikimai išreikšti abiejų politikų.

IP diapazonų palaikymas taip pat priklauso nuo vartotojo ir jo versijos. Mašina su nauju atskiru curl vis tiek gali vykdyti programą, susietą su senesne libcurl, arba klientą, naudojantį visiškai kitą biblioteką. Operacinės sistemos leidimas nėra išsamus klientų sąrašas.

Kiekvienam vartotojui užrašykite palaikomą konfigūracijos sąsają ir mažiausią numatytų maršrutų išraišką. Trumpas aiškus mazgų sąrašas gali būti geresnis už gudrų šabloną, kurio prasmės niekas negali paaiškinti.

Laikykite konfigūracijos įrodymus atskirai nuo ryšio įrodymų

Išanalizuotas nustatymas ar maršrutizavimo sprendimo API gali parodyti, ką programa pasirinko. Užklausos rezultatas tada parodo, ar tas maršrutas buvo tinkamas. .NET atveju HttpClient.DefaultProxy.IsBypassed suteikia tą konfigūracijos pusės patikrą, kai naudojama numatytojo tarpinio serverio politika. Nediagnozuokite nepasiekiamos tiesioginės paslaugos kaip praleidimo analizatoriaus gedimo vien todėl, kad užklausa baigėsi skirtuoju laiku.

Išsaugokite ribinius paskirties taškus, kai atnaujinate klientą ar bazinį atvaizdą. Jie leidžia matyti būsimus suderinamumo pokyčius, nereikalaujant, kad visa komanda iš naujo atrastų, kodėl faile yra du panašiai atrodantys domeno įrašai.

Susiję straipsniai