当前位置: 首页 > article >正文

go设置镜像代理

前言

在 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.ioGoProxy 官方镜像
https://mirrors.aliyun.com/goproxy/阿里云提供的镜像
https://proxy.golang.com.cnGo 语言中文网提供的镜像
https://gocenter.ioJFrog 提供的镜像

三、多代理配置

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 模块镜像代理的工作原理:

  1. 当执行 go getgo mod tidy 时,Go 会向 GOPROXY 指定的地址请求模块。
  2. 如果镜像代理中存在该模块,则直接返回;否则,代理会从原始地址下载并缓存。
  3. 如果所有代理都失败,则根据 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 !!!


http://www.kler.cn/a/551406.html

相关文章:

  • 深入解析 vLLM:高性能 LLM 服务框架的架构之美(一)原理与解析
  • Python笔记——零基础学python:超详细的入门教程!python入门教程(非常详细)
  • 【Elasticsearch】词项中心(term-centric)和字段中心(field-centric)
  • Pytorch使用手册-使用 PyTorch 和 TIAToolbox 进行全视野切片图像分类(专题十七)
  • 基于 Python 和 MySQL 的房屋信息可视化及价格预测系统设计与实现(源码+lw)
  • 一文读懂Ingress-Nginx以及实战教程
  • SSL 连接
  • webpack和vite打包原理及比较
  • Python爬虫实战:获取笔趣阁图书信息,并做数据分析
  • C语言学习笔记 (初阶)
  • 信息收集-Web应用JS架构URL提取数据匹配Fuzz接口WebPack分析自动化
  • Vue.js 组件开发:构建可复用的 UI 组件
  • Spring如何去解决循环依赖问题的?
  • 游戏数据中枢系统的架构设计与实现——以GameDataOrchestrator为核心的模块化数据管理体系
  • 基于IOCP模型的服务器接待流程设计与实现——以奶茶店运营为隐喻
  • 浅谈Spring Boot MQTT功能并实现手动连接操作
  • 500. 键盘行 771. 宝石与石头 简单 find接口的使用
  • 机械学习基础-6.更多分类-数据建模与机械智能课程自留
  • 基于kafka、celery的日志收集报警项目
  • NCV4275CDT50RKG 车规级LDO线性电压调节器芯片——专为新能源汽车设计的高可靠性电源解决方案