在公司局域网内部可以访问使用go代理(七牛、阿里,golang中国) 同时也需访问公司内部服务器代码不走公网
复制代码
准备工作
- 一台用于代理的服务器 192.168.1.125
- athens
- nginx
- git环境
- golang 环境
1.安装athens
修改config.dev.toml
GoBinaryEnvVars = ["GOPROXY=direct"]
GlobalEndpoint = "https://goproxy.cn"
FilterFile = "filterfile.toml"
NETRCPath = "netrc.toml"
SumDBs = ["https://sum.golang.google.cn"]
NoSumPatterns = ["私有库域名/*"]
StorageType = "disk"
[Storage.Disk]
# RootPath is the Athens Disk Root folder
# Env override: ATHENS_DISK_STORAGE_ROOT
RootPath = "E:/data"
复制代码
filterfile.toml 文件
D
# 内网的gitlab不需要通过GlobalEndpoint下载
+ git.company.com/xxx/xxx`
复制代码
.netrc netrc
# 采用账户配置,也可以采用SSH具体谷歌
machine 192.168.1.125
login username
password password
复制代码
2.代理服务器的本机添加一条路由
ip 为私有git的局域网地址:192.168.1.125,私有库名为go.mod的import前缀,例如 git.company.com
192.168.1.125 私有库域名
3.配置nginx
生成SSL免费自签名证书
配置nginx
server {
复制代码
listen 443 ssl;
server_name git.company.com;
ssl on;
ssl_certificate server.crt;#配置证书位置
ssl_certificate_key server.key;#配置秘钥位置
#ssl_client_certificate ca.crt;#双向认证
#ssl_verify_client on; #双向认证
ssl_session_timeout 5m;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;
location / {
if ($args ~* "^go-get=1") {
return 200 "";
}
root html;
index index.html index.htm;
}
}
4.修改golang源码go get 忽略不安全的证书
编译完成后替换代理服务器上golang环境下bin\go.exe
5.修改客户端环境变量
windows :
go env -w GONOSUMDB=git.company.com/*