Kiteuzi cha proksi cha Go kinachotegemea mazingira kina kighairi kilichojengwa ndani kwa localhost na anwani lengwa za IP za loopback. Kufuta thamani ya NO_PROXY hakuondoi kighairi hicho. Hivyo jaribio la ndani linaweza kuunganishwa moja kwa moja huku ombi kwa jina la seva ya umma likitumia proksi kama inavyotarajiwa.

Kanuni hii inahusu lengwa la ombi. Haikuzuii kutumia kisikilizaji cha proksi ambacho anwani yake yenyewe ni 127.0.0.1.

Kagua kiteuzi bila kutuma ombi

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

Ukitaka kuona ulinganisho na mazingira, endesha programu ukiwa umeweka vigeu vya proksi kwa mchakato huo. Programu hutathmini viteuzi tu; haiunganishwi na proksi ya mfano wa nyaraka wala lengwa lolote.

Ugunduzi kutoka mazingira na kiteuzi kilichoainishwa wazi ni sera tofauti

ProxyFromEnvironment huzingatia skimu ya lengwa, mipangilio ya mazingira na kanuni za kupita proksi, pamoja na ushughulikiaji wake maalumu wa loopback. ProxyURL hurudisha URL ya proksi iliyotolewa kwa kila ombi linalopitishwa kwenye kiteuzi hicho.

Kwa hiyo, transport maalumu yenye ProxyURL iliyoainishwa wazi inaweza kutuma ombi kwa lengwa la ndani kupitia proksi. Hilo linafaa tu ikiwa proksi inaweza kufikia lengwa lililoombwa kwa njia halali. localhost ya proksi ya mbali si localhost ya kompyuta yako mpakato, hivyo kulazimisha njia si moja kwa moja jaribio muhimu la muunganisho.

Kagua kabla mchakato haujahifadhi mazingira kwenye akiba

Usanidi wa proksi wa mazingira wa net/http ya kawaida huhifadhiwa kwenye akiba baada ya matumizi ya kwanza. Kubadilisha kigeu cha mazingira baadaye ndani ya programu hiyo hiyo inayoendelea kufanya kazi si njia ya kuaminika ya kurudia jaribio la usanidi mpya. Anzisha mchakato mpya wenye thamani unazokusudia, au toa kiteuzi kilichoainishwa wazi ambacho unadhibiti tabia yake.

Tabia hii ya loopback inahusu kiteuzi cha kawaida cha proksi cha Go 1.27.3. Lugha na programu nyingine za mteja za HTTP zinaweza kutumia kanuni tofauti za kuelekeza localhost.

Makala zinazohusiana