banner
biuaxia

biuaxia

"万物皆有裂痕,那是光进来的地方。"
github
bilibili
tg_channel

GOPROXY變數中的direct的作用是什麼

標題:GOPROXY 變數中的 direct 的作用是什麼
日期:2021-11-17 08:53:00
toc:true
類別:

  • Golang
    標籤:
  • golang
  • Golang
  • 轉載
  • Go
  • go
  • goproxy
  • GOPROXY
  • direct
  • 作用
  • 變數

本文轉載自:GOPROXY 變數中的 direct 的作用是什麼・Issue #21・goproxy/goproxy


目前在使用這個專案搭建 go 代理的時候發現,GORPOXY 變數設置為 https://goproxy.cn,direct 的話,golang.org 下的包不會走代理而是直連最終超時,而去掉 direct 的話就一切正常。以下是構建代理程序的代碼,是我哪裡搞錯了嗎?

SnipasteGOPROXY 環境變數逗號列表的作用是,如果請求前一個時響應了 404 或 410 那麼自動 fallback 到下一個,其中 direct 的作用是直接回源(源指的是比如 GitHub 這種代碼托管服務)拉取代碼。

如果你有公司內部的模塊需要服務到,比如通過了 GOPRIVATE 等環境變數來指定,那麼你是必須在 GOPROXY 中包含 direct 的,否則 GOPRIVATE 之類的不能正常工作。

此外你的環境變數配置的確存在問題,主要是 https_proxy 這個環境變數配置錯了。如果你配置了 https_proxy,那麼 Go HTTP client 是會優先使用它而不是 http_proxy,此時使用 https_proxy 時會默認它的值是一個有正常簽名 TLS 證書的可以通過 HTTPS 協議訪問到的 URL,可你的是一個 http:// 開頭的錯誤 URL。換句話說你這麼配置的話 Go HTTP client 所有請求都會失敗,因為連 TLS 握手階段都過不去,我之前在 goproxy/goproxy.cn#71 (comment) 這裡也有提到過。

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。