Pagkakatugma ng NO_PROXY sa curl, .NET at mga container
Gawing partikular-sa-kliyente na konfigurasyon ang isang pinagsasaluhang patakaran sa direktang pagruruta gamit ang maliit na hanay ng mga representatibong destinasyon.
Naglalagay ang isang koponan ng isang bypass string sa isang pinagsasaluhang environment file. Direkta ang curl, gumagamit ng proxy ang ibang aplikasyon, at iba na naman ang kilos ng isang container. Ipinamahagi ng pinagsasaluhang file ang parehong mga karakter. Hindi ito nagpamahagi ng isang pinagsasaluhang parser.
Ang matatag na bagay ay ang patakaran: aling mga destinasyon ang dapat direktang, sa ilalim ng aling mga kundisyon? Ihiwalay iyon sa string na kailangan ng bawat programa.
Isulat muna ang mga inaasahang ruta
Gumamit ng mga representatibong address, kasama ang mga kaso sa hangganan at hindi lamang ang mga madaling tagumpay:
| Hugis ng destinasyon | Tanong para sa may-ari ng patakaran |
|---|---|
| Magulang na domain | Dapat bang laktawan ito, o ang mga anak lamang nito? |
| Isang subdomain | Namamana ba nito ang parehong ruta? |
| Isang literal na pribadong IP | Direkta bang maaabot ang address na iyon mula sa kliyenteng ito? |
| Parehong serbisyo sa ilalim ng hostname | Dapat bang magtugma ang mga kahilingang batay sa pangalan at sa address? |
| Ibang port ng serbisyo | Saklaw ba ng pagbubukod ang host o isang tagapakinig lamang? |
Pagkatapos, tukuyin ang mga mamimili: ang daemon na kumukuha ng image, ang programa sa loob ng container, isang HTTP library ng wika at isang interaktibong browser ay maaaring hiwalay na mga entry. Maaaring punan ng konfigurasyon ng proxy ng Docker client ang mga halaga ng environment ng container nang hindi pinipilit ang bawat kliyente sa loob na ipatupad ang parehong mga tuntunin sa pagtutugma.
Isalin sa halip na bulag na kopyahin
Isang dokumentadong halimbawa ng tunay na pagkakaiba ay ang hangganan ng magulang na domain. Sinasaklaw ng pagbubukod ng domain ng curl ang pinangalanang domain at ang mga tugmang anak. Tinatangi ng patakaran sa environment ng .NET ang hubad na pangalan mula sa anyo ng subdomain na may nangungunang tuldok. Ang pangkalahatang tuntunin na „laging magdagdag ng nangungunang tuldok“ ay hindi maipapahayag nang mapagkakatiwalaan ang dalawang patakaran.
Nakadepende rin ang suporta sa mga saklaw ng IP sa mamimili at sa bersyon nito. Ang isang makina na may bagong standalone na curl ay maaari pa ring magpatakbo ng aplikasyong naka-link sa lumang libcurl, o kliyenteng gumagamit ng ganap na ibang library. Ang release ng operating system ay hindi kumpletong imbentaryo ng mga kliyente.
Para sa bawat mamimili, itala ang sinusuportahang interface ng konfigurasyon at ang pinakamaliit na pagpapahayag ng mga inilalayong ruta. Ang maikli at malinaw na listahan ng host ay maaaring mas mabuti kaysa sa matalinong pattern na walang makapagpapaliwanag ng kahulugan.
Ihiwalay ang ebidensya ng konfigurasyon sa ebidensya ng koneksyon
Ang na-parse na setting o API ng desisyon sa pagruruta ay maaaring magpakita kung ano ang pinili ng programa. Ang kinalabasan ng kahilingan ay magpapakita kung nagamit ang rutang iyon. Sa .NET, ibinibigay ng HttpClient.DefaultProxy.IsBypassed ang tseke sa panig ng konfigurasyon kapag ang default na proxy ang patakarang ginagamit. Huwag husgahan ang isang hindi maabot na direktang serbisyo bilang pagkabigo ng bypass parser dahil lamang nag-timeout ang kahilingan.
Panatilihin ang mga destinasyon sa hangganan kapag nag-a-update ng kliyente o base image. Ginagawa nilang nakikita ang mga pagbabago sa pagkakatugma sa hinaharap nang hindi kailangang muling tuklasin ng buong koponan kung bakit may dalawang magkatulad na entry ng domain ang file.