GOPROXY und HTTP_PROXY: Modulquelle und Forward-Proxy
Trennen Sie Gos Auswahl der Modulquelle von der Forward-Proxy-Route, über die diese Quelle erreicht wird.
GOPROXY wählt einen Go-Dienst zum Herunterladen von Modulen. HTTP_PROXY und HTTPS_PROXY wählen einen Netzwerkvermittler, über den ein Ziel erreicht wird. Ein allgemeiner HTTP-Proxy implementiert normalerweise nicht die Metadaten- und Datei-API des Moduldienstes.
Richtlinie für die Modulquelle
go env GOPROXY GOPRIVATE GONOPROXY
Diese Werte beschreiben, woher Go Module bezieht. GONOPROXY wählt Modulpfade, die den Moduldienst umgehen. Ebenso fordert GOPROXY=direct den Zugriff auf die Versionsverwaltung für Module an; dadurch werden HTTP-Proxyvariablen nicht für jede Verbindung deaktiviert.
Die Netzwerkroute
Ein Aufruf in einer POSIX-Shell kann unabhängig von der Modulquelle einen Forward-Proxy bereitstellen:
HTTPS_PROXY=http://203.0.113.10:8080 go mod download
Ersetzen Sie den Dokumentationsendpunkt und behalten Sie den vorgesehenen GOPROXY-Wert bei. Wählen Sie für öffentliche Moduld Downloads, die öffentliche HTTP-Proxys verwenden dürfen, einen Kandidaten aus der HTTP-Proxy-Liste. Verwenden Sie NO_PROXY für HTTP-Transportziele, die direkt bleiben sollen.
Je nach Modulrichtlinie können Downloads einen Moduldienst, einen Prüfsummendienst, einen Artefakthost oder einen Versionskontrollserver kontaktieren. Wenn eine Anfrage fehlschlägt, ermitteln Sie sowohl die von Go ausgewählte Quelle als auch die Route zu diesem Host. Die Abfrage go env zeigt nicht alle Proxy-Umgebungsvariablen und beweist nicht, welche Verbindung ein Download geöffnet hat.