De Proxy-Selector vu Go, deen d’Ëmwelt benotzt, huet eng agebaute Ausnam fir localhost a Loopback-IP-Ziler. NO_PROXY eidel ze maachen hëlt dës Ausnam net ewech. Dofir kann e lokalen Test direkt verbannen, wärend eng Ufro un en ëffentlechen Hostnumm de Proxy wéi erwaart benotzt.

D’Reegel betrëfft d’Zil vun der Ufro. Si verhënnert net, datt Dir e Proxy-Listener benotzt, deem seng eegen Adress 127.0.0.1 ass.

De Selector iwwerpréiwen, ouni eng Ufro ze schécken

package main

import (
    "fmt"
    "net/http"
    "net/url"
)

func main() {
    fixed, _ := url.Parse("http://203.0.113.10:8080")
    for _, target := range []string{
        "http://localhost:8000/",
        "http://127.0.0.1:8000/",
        "http://example.com/",
    } {
        request, _ := http.NewRequest("GET", target, nil)
        discovered, err := http.ProxyFromEnvironment(request)
        explicit, _ := http.ProxyURL(fixed)(request)
        fmt.Println(target, discovered, explicit, err)
    }
}

Wann Dir de Verglach mat der Ëmwelt gesi wëllt, start de Programm mat de Proxy-Variabele fir de Prozess gesat. De Programm evaluéiert nëmmen d’Selectoren; hie verbënnt weder mam Dokumentatiounsproxy nach mat engem vun den Ziler.

D’Erkennung aus der Ëmwelt an en explizitte Selector si verschidde Politicken

ProxyFromEnvironment berücksichtegt d’Zilschema, d’Ëmweltastellungen an d’Ëmgeeungsreegelen, och déi speziell Loopback-Behandlung. ProxyURL gëtt déi uginn Proxy-URL fir all Ufro zeréck, déi un dëse Selector weidergi gëtt.

En eegenen Transport mat explizittem ProxyURL kann also eng Ufro un e lokalt Zil duerch e Proxy schécken. Dat ass nëmme sënnvoll, wann de Proxy dat ugefrot Zil berechtegterweis erreeche kann. De localhost vun engem Fernproxy ass net de localhost vun Ärem Laptop; d’Streck ze forcéieren ass dofir net automatesch en nëtzleche Verbindungstest.

Kontrolléieren, éier de Prozess seng Ëmwelt am Cache huet

D’Ëmwelt-Proxykonfiguratioun vum Standard-net/http gëtt nom éischte Gebrauch am Cache gespäichert. Duerno eng Ëmweltvariabel am selwechte lafende Programm z’änneren ass keng zouverlässeg Method, fir en Test mat enger neier Konfiguratioun ze widderhuelen. Start en neie Prozess mat de gewënschte Wäerter oder gitt en explizitte Selector un, deem säi Verhalen Dir kontrolléiert.

Dëst Loopback-Verhale gëllt fir de Standard-Proxy-Selector vu Go 1.27.3. Aner Sproochen an HTTP-Cliente kënnen aner Routingreegele fir localhost benotzen.

Ähnlech Artikelen