go proxy 代理
阿新 • • 發佈:2021-01-07
Go 技巧分享:Go 國內加速映象
651說明
眾所周知,國內網路訪問國外資源經常會出現不穩定的情況。 Go 生態系統中有著許多中國 Gopher 們無法獲取的模組,比如最著名的golang.org/x/...
。並且在中國大陸從 GitHub 獲取模組的速度也有點慢。
因此設定 CDN 加速代理就很有必要了,以下是幾個速度不錯的提供者:
- 七牛:Goproxy 中國 https://goproxy.cn
- 阿里:mirrors.aliyun.com/goproxy/
- 官方: < 全球 CDN 加速https://goproxy.io/>
- 其他:jfrog 維護 https://gocenter.io
設定代理
類 Unix
在 Linux 或 macOS 上面,需要執行下面命令(或者,可以把以下命令寫到.bashrc
或.bash_profile
檔案中):
# 啟用 Go Modules 功能
go env -w GO111MODULE=on
# 配置 GOPROXY 環境變數,以下三選一
# 1. 七牛 CDN
go env -w GOPROXY=https://goproxy.cn,direct
# 2. 阿里雲
go env -w GOPROXY=https://mirrors.aliyun.com/goproxy/,direct
# 3. 官方
go env -w GOPROXY=https://goproxy.io,direct
確認一下:
$ go env | grep GOPROXY
GOPROXY="https://goproxy.cn"
Windows
在 Windows 上,需要執行下面命令:
# 啟用 Go Modules 功能
$env:GO111MODULE="on"
# 配置 GOPROXY 環境變數,以下三選一
# 1. 七牛 CDN
$env:GOPROXY="https://goproxy.cn,direct"
# 2. 阿里雲
$env:GOPROXY="https://mirrors.aliyun.com/goproxy/,direct"
# 3. 官方
$env:GOPROXY="https://goproxy.io,direct"
測試一下
$ time go get golang.org/x/tour
本地如果有模組快取,可以使用命令清空
go clean --modcache
。
私有模組
如果你使用的 Go 版本 >=1.13, 你可以通過設定 GOPRIVATE 環境變數來控制哪些私有倉庫和依賴 (公司內部倉庫) 不通過 proxy 來拉取,直接走本地,設定如下:
# Go version >= 1.13
go env -w GOPROXY=https://goproxy.cn,direct
# 設定不走 proxy 的私有倉庫,多個用逗號相隔
go env -w GOPRIVATE=*.corp.example.com