Go को वातावरणमा आधारित प्रोक्सी चयनकर्तामा localhost र लुपब्याक IP गन्तव्यका लागि अन्तर्निहित अपवाद छ। NO_PROXY खाली गर्दा यो अपवाद हट्दैन। त्यसैले स्थानीय परीक्षण प्रत्यक्ष जोडिन सक्छ, जबकि सार्वजनिक होस्टनाममा गरिएको अनुरोधले अपेक्षाअनुसार प्रोक्सी प्रयोग गर्छ।

यो नियम अनुरोधको गन्तव्यसँग सम्बन्धित छ। यसले आफ्नै ठेगाना 127.0.0.1 भएको प्रोक्सी लिसनर प्रयोग गर्न रोक्दैन।

अनुरोध नपठाई चयनकर्ता जाँच्नुहोस्

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

वातावरणसँगको तुलना हेर्न चाहनुहुन्छ भने प्रक्रियाका लागि प्रोक्सी चलहरू सेट गरेर प्रोग्राम चलाउनुहोस्। प्रोग्रामले चयनकर्ताको मूल्याङ्कन मात्र गर्छ; यो कागजातको उदाहरणको प्रोक्सी वा कुनै पनि गन्तव्यमा जोडिँदैन।

वातावरणबाट पत्ता लगाउने र स्पष्ट चयनकर्ता फरक नीति हुन्

ProxyFromEnvironment ले गन्तव्यको स्किम, वातावरण सेटिङ र बाइपास नियम हेर्छ, जसमा लुपब्याकको विशेष व्यवहार पनि पर्छ। ProxyURL ले त्यस चयनकर्तामा पठाइएका हरेक अनुरोधका लागि दिइएको प्रोक्सी URL फर्काउँछ।

त्यसैले स्पष्ट ProxyURL भएको छुट्टै ट्रान्सपोर्टले स्थानीय गन्तव्यको अनुरोध प्रोक्सीमार्फत पठाउन सक्छ। यो तब मात्र उपयोगी हुन्छ जब प्रोक्सी अनुरोध गरिएको गन्तव्यमा वैध रूपमा पुग्न सक्छ। टाढाको प्रोक्सीको localhost तपाईंको ल्यापटपको localhost होइन, त्यसैले मार्ग जबर्जस्ती तोक्नु स्वतः उपयोगी कनेक्टिभिटी परीक्षण हुँदैन।

प्रक्रियाले वातावरण क्यास गर्नुअघि जाँच्नुहोस्

मानक net/http को वातावरण प्रोक्सी कन्फिगरेसन पहिलो प्रयोगपछि क्यास हुन्छ। पछि त्यही चलिरहेको प्रोग्रामभित्र वातावरण चल बदल्नु नयाँ कन्फिगरेसनको परीक्षण दोहोर्‍याउने भरपर्दो उपाय होइन। चाहेका मानसहित नयाँ प्रक्रिया सुरु गर्नुहोस् वा व्यवहार आफूले नियन्त्रण गर्ने स्पष्ट चयनकर्ता दिनुहोस्।

यो लुपब्याक व्यवहार Go 1.27.3 को मानक प्रोक्सी चयनकर्तामा लागू हुन्छ। अन्य भाषा र HTTP क्लाइन्टले localhost का लागि फरक राउटिङ नियम प्रयोग गर्न सक्छन्।

सम्बन्धित लेखहरू