Mae gan ddewiswr dirprwy Go sy’n seiliedig ar yr amgylchedd eithriad adeiledig ar gyfer localhost a chyrchfannau IP loopback. Nid yw gwagio NO_PROXY yn dileu’r eithriad hwnnw. Gall prawf lleol felly gysylltu’n uniongyrchol tra bo cais at enw gwesteiwr cyhoeddus yn defnyddio’r dirprwy yn ôl y disgwyl.

Mae’r rheol yn ymwneud â chyrchfan y cais. Nid yw’n eich atal rhag defnyddio gwrandäwr dirprwy sydd â’i gyfeiriad ei hun yn 127.0.0.1.

Archwiliwch y dewiswr heb anfon cais

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)
    }
}

Os ydych am weld y gymhariaeth â’r amgylchedd, rhedwch y rhaglen gyda’r newidynnau dirprwy wedi’u gosod ar gyfer y broses. Dim ond gwerthuso’r dewiswyr y mae’r rhaglen; nid yw’n cysylltu â’r dirprwy enghreifftiol yn y dogfennau nac ag unrhyw gyrchfan.

Mae darganfod o’r amgylchedd a dewiswr penodol yn bolisïau gwahanol

Mae ProxyFromEnvironment yn ystyried cynllun y gyrchfan, gosodiadau’r amgylchedd a’r rheolau osgoi, gan gynnwys ei driniaeth arbennig o loopback. Mae ProxyURL yn dychwelyd URL y dirprwy a roddwyd ar gyfer pob cais sy’n cael ei basio i’r dewiswr hwnnw.

Felly gall cludiant penodol â ProxyURL wedi’i osod yn benodol anfon cais at gyrchfan leol drwy ddirprwy. Dim ond pan all y dirprwy gyrraedd y gyrchfan y gofynnwyd amdani mewn modd dilys y mae hyn yn ddefnyddiol. Nid localhost eich gliniadur yw localhost dirprwy pell, felly nid yw gorfodi’r llwybr yn brawf cysylltedd defnyddiol yn awtomatig.

Gwiriwch cyn i’r broses storio’i hamgylchedd yn y storfa dros dro

Mae cyfluniad dirprwy’r amgylchedd yn net/http safonol yn cael ei storio yn y storfa dros dro ar ôl ei ddefnyddio gyntaf. Nid yw newid newidyn amgylchedd yn ddiweddarach yn yr un rhaglen sy’n rhedeg yn ffordd ddibynadwy o ailadrodd prawf â chyfluniad newydd. Dechreuwch broses newydd â’r gwerthoedd bwriadedig, neu darparwch ddewiswr penodol yr ydych yn rheoli ei ymddygiad.

Mae’r ymddygiad loopback hwn yn berthnasol i ddewiswr dirprwy safonol Go 1.27.3. Gall ieithoedd a chleientiaid HTTP eraill ddefnyddio rheolau llwybro localhost gwahanol.

Erthyglau cysylltiedig