本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

这是freegeoip软件的源代码镜像,包含Web服务器和Go编程语言包,使任何Web服务器都能通过简单清晰的API支持IP地理位置定位。有关地理位置定位的详细信息,请参见***。
Docker为多种平台提供了安装指南,包括:
docker run --restart=always -p 8080:8080 -d cryptlex/freegeoip
curl localhost:8080/json/1.2.3.4 # => {"ip":"1.2.3.4","country_code":"US","country_name":"United States", # ...(省略部分响应内容)
对于生产工作负载,您可能需要不同的配置,例如:
有关服务器配置的更多信息,请参见下面的服务器选项部分。
自动化部署可参考freegeoip chef cookbook或适用于Ubuntu 14.04 LTS的(旧版)Ansible Playbook。
要查看所有可用选项,请使用-help选项:
docker run --rm -it cryptlex/freegeoip -help
如果使用LetsEncrypt.org provision TLS证书,必须在443端口监听HTTPS。以下示例展示服务器监听3个不同端口:指标+性能分析(8888)、HTTP(80)和HTTPS(443):
docker run -p 8888:8888 -p 80:8080 -p 443:8443 -d cryptlex/freegeoip \ -internal-server=:8888 \ -http=:8080 \ -https=:8443 \ -hsts=max-age=31536000 \ -letsencrypt \ -letsencrypt-hosts=myfancydomain.io
您可以通过命令行标志或环境变量配置freegeoip Web服务器。环境变量名称与命令行标志相同,但前缀为FREEGEOIP,全大写,用下划线分隔。例如,使用环境变量配置:
$ cat prod.env FREEGEOIP_INTERNAL_SERVER=:8888 FREEGEOIP_HTTP=:8080 FREEGEOIP_HTTPS=:8443 FREEGEOIP_HSTS=max-age=31536000 FREEGEOIP_LETSENCRYPT=true FREEGEOIP_LETSENCRYPT_HOSTS=myfancydomain.io $ docker run --env-file=prod.env -p 8888:8888 -p 80:8080 -p 443:8443 -d cryptlex/freegeoip
默认情况下,HTTPS上启用HTTP/2,可通过-http2=false标志禁用。
此外,freegeoip Docker镜像不提供freegeoip.net的网页,仅提供API。如需提供网页,可在命令行中传递-public=/var/www参数,并使用Docker的-v参数将该目录挂载为主机卷以提供自定义页面。
如果freegeoip Web服务器在反向代理或负载均衡器后运行,需传递-use-x-forwarded-for参数,并在所有请求中提供X-Forwarded-For HTTP头,以便服务器记录客户端IP并在未提供IP时(如/json/)执行地理位置查询。
当前实现使用MaxMind的免费GeoLite2 City数据库。
过去曾使用其他提供商的数据库,甚至自建数据库(整合不同来源数据),未来可能会变更。
如果已购买MaxMind商业数据库,可将freegeoip Web服务器(或Go API开发)指向数据库文件URL或本地文件,服务器将自动使用该数据库。
对于磁盘文件,替换为新版本后,freegeoip Web服务器将在后台自动重新加载。若使用URL(默认),服务器会在后台定期检查URL是否有新版本,如有则自动下载并重新加载。
freegeoip API的所有响应均在X-Database-Date HTTP头中包含数据库下载日期。
freegeoip API通过不同端点提供多种格式的响应。
示例:
curl freegeoip.net/json/
返回您自己IP地址(连接的源IP地址)的地理位置信息。
可传递不同IP或主机名。例如,查询github.com的地理位置,服务器会先解析域名,然后使用第一个可用IP地址(可能是IPv4或IPv6):
curl freegeoip.net/json/github.com
/xml/{ip}和/csv/{ip}端点具有相同语义。
JSON响应可通过添加callback参数编码为JSONP:
curl freegeoip.net/json/?callback=foobar
其他端点忽略callback参数。
freegeoip Web服务器可提供使用指标,并支持运行时性能分析和跟踪。
默认情况下两者均禁用,可通过命令行传递-internal-server参数启用。指标为Prometheus生成,可通过/metrics端点查询(即使使用curl)。
HTTP pprof可在/debug/pprof访问,pprof包文档中的示例适用于freegeoip Web服务器。
Go编程语言的freegeoip包提供两个API:
http.Handler:可用于任何http服务器如需快速查看代码,请参见example_test.go文件。否则,请查看godoc参考。
![GoDoc]([] ![Build Status]([] ![GoReportCard]([***]
http.Handler对象,可添加到任何HTTP服务器以提供与freegeoip.net相同的简化API,还支持自定义HTTP响应格式的接口。下载包:
go get -d github.com/cryptlex/freegeoip/...
安装Web服务器:
go install github.com/cryptlex/freegeoip/cmd/freegeoip
测试覆盖率良好,测试代码可能有助于找到所需功能。
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429