Zergatik saihesten du Go-k proxya localhost helbururako
Bereizi Go-ren berezko loopback-salbuespena NO_PROXY ezarpenetik, eta konparatu ingurune bidezko bideratzea ProxyURL esplizituarekin.
Go-ren ingurune bidezko proxy-hautatzaileak berezko salbuespena du localhost eta loopback IP helburuetarako. NO_PROXY hustuta ere salbuespen hori ez da kentzen. Horregatik, tokiko proba bat zuzenean konekta daiteke, ostalari-izen publiko baterako eskaerak proxya espero bezala erabiltzen duen bitartean.
Araua eskaeraren helburuari dagokio. Ez du eragozten bere helbidea 127.0.0.1 duen proxy-entzule bat erabiltzea.
Aztertu hautatzailea eskaerarik bidali gabe
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)
}
}
Ingurunearekiko konparazioa ikusi nahi baduzu, exekutatu programa prozesuaren proxy-aldagaiak ezarrita. Programak hautatzaileak ebaluatu besterik ez du egiten; ez da dokumentazioko proxyra edo helburuetako batera ere konektatzen.
Ingurunetik aurkitzea eta hautatzaile esplizitua politika desberdinak dira
ProxyFromEnvironment funtzioak helburuaren eskema, ingurune-ezarpenak eta saiheste-arauak hartzen ditu kontuan, loopback helbideen tratamendu berezia barne. ProxyURL funtzioak emandako proxy URLa itzultzen du hautatzaile horri pasatutako eskaera guztietarako.
Beraz, ProxyURL esplizitua duen garraio bereizi batek tokiko helbururako eskaera proxy bidez bidal dezake. Hori erabilgarria da proxyak eskatutako helburura zilegitasunez irits badaiteke soilik. Urruneko proxyaren localhost ez da zure ordenagailu eramangarriaren localhost; hortaz, bidea behartzea ez da automatikoki konektibitate-proba erabilgarria.
Egiaztatu prozesuak ingurunea cachean gorde aurretik
Net/http estandarraren ingurune bidezko proxy-konfigurazioa lehen erabileraren ondoren cachean gordetzen da. Gero exekutatzen ari den programa berean ingurune-aldagai bat aldatzea ez da konfigurazio berriko proba errepikatzeko modu fidagarria. Hasi prozesu berri bat nahi dituzun balioekin, edo eman zuk kontrolatutako portaera duen hautatzaile esplizitu bat.
Loopback-portaera hori Go 1.27.3-ren proxy-hautatzaile estandarrari dagokio. Beste hizkuntza eta HTTP bezero batzuek localhost bideratzeko arau desberdinak erabil ditzakete.