前言
在 Go 開發中,如果直接從官方源(https://proxy.golang.org
)下載依賴包速度較慢,可以通過設置 鏡像代理 來加速依賴包的下載。以下是增加 Go 鏡像代理的詳細方法:
一、設置 Go 鏡像代理
1. 使用環境變量設置代理
通過設置 GOPROXY
環境變量,指定鏡像代理地址。
Linux/MacOS
# 臨時生效
export GOPROXY=https://goproxy.cn,direct# 永久生效(添加到 ~/.bashrc 或 ~/.zshrc)
echo 'export GOPROXY=https://goproxy.cn,direct' >> ~/.bashrc
source ~/.bashrc
Windows
# 臨時生效
$env:GOPROXY = "https://goproxy.cn,direct"# 永久生效(添加到環境變量)
[System.Environment]::SetEnvironmentVariable('GOPROXY', 'https://goproxy.cn,direct', [System.EnvironmentVariableTarget]::User)
2. 使用 go env
設置代理
直接通過 go env
命令設置代理:
go env -w GOPROXY=https://goproxy.cn,direct
3. 驗證代理設置
go env GOPROXY
# 輸出:https://goproxy.cn,direct
二、常用 Go 鏡像代理地址
鏡像代理地址 | 說明 |
---|---|
https://goproxy.cn | 七牛云提供的國內鏡像,推薦使用 |
https://goproxy.io | GoProxy 官方鏡像 |
https://mirrors.aliyun.com/goproxy/ | 阿里云提供的鏡像 |
https://proxy.golang.com.cn | Go 語言中文網提供的鏡像 |
https://gocenter.io | JFrog 提供的鏡像 |
三、多代理配置
Go 支持配置多個代理地址,用逗號分隔。如果第一個代理失敗,會自動嘗試下一個代理。例如:
export GOPROXY=https://goproxy.cn,https://goproxy.io,direct
direct
:表示如果所有代理都失敗,則直接從原始地址下載。
四、私有模塊配置
如果你的項目依賴私有模塊,可以通過 GOPRIVATE
環境變量指定私有模塊的路徑,避免通過代理下載。
1. 設置私有模塊
export GOPRIVATE=github.com/mycompany,gitlab.com/myproject
2. 結合代理使用
export GOPROXY=https://goproxy.cn,direct
export GOPRIVATE=github.com/mycompany
五、Go 模塊鏡像代理的原理
Go 模塊鏡像代理的工作原理:
- 當執行
go get
或go mod tidy
時,Go 會向GOPROXY
指定的地址請求模塊。 - 如果鏡像代理中存在該模塊,則直接返回;否則,代理會從原始地址下載并緩存。
- 如果所有代理都失敗,則根據
direct
設置決定是否直接從原始地址下載。
六、示例:從零開始配置 Go 鏡像代理
1. 初始化 Go 模塊
go mod init myproject
2. 設置鏡像代理
go env -w GOPROXY=https://goproxy.cn,direct
3. 下載依賴
go get github.com/gin-gonic/gin
4. 驗證依賴下載
cat go.mod
七、總結
步驟 | 命令或配置 |
---|---|
設置鏡像代理 | go env -w GOPROXY=https://goproxy.cn,direct |
驗證代理設置 | go env GOPROXY |
設置私有模塊 | export GOPRIVATE=github.com/mycompany |
下載依賴 | go get github.com/gin-gonic/gin |
通過以上方法,你可以輕松配置 Go 鏡像代理,加速依賴包的下載,提升開發效率。
good day !!!