一个功能丰富的基于NGINX的Amazon S3代理,可在Docker和Kubernetes中运行。
适用于需要通过NGINX反向代理访问Amazon S3或第三方S3兼容存储服务的场景,尤其适合需要缓存优化、多域名/多存储桶管理及访问控制的生产环境,支持Docker和Kubernetes部署。
推荐为每个s3-nginx-proxy部署创建一个AWS IAM用户。然后附加仅授予其对所需存储桶的GetObject权限的策略,例如:
json{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::thepoon.ppy.sh/*" } ] }
授予过多权限可能导致安全风险(例如列出整个存储桶内容)。请谨慎操作!
./data/etc/proxy-config/virtualhosts.json和./data/etc/proxy-config/cache.json以匹配您的需求设置。./data/etc/proxy-config/secrets.json(参见./data/etc/proxy-config/secrets.json.example中的模板)。docker-compose up -d启动NGINX和配置生成器容器。Helm chart 可在 [***] 获取
可使用HTTP DELETE方法从缓存中清除单个文件。
默认情况下,所有人均可无需认证执行此操作。
可通过在缓存配置中设置purgeAuthorizationKey并使用HTTP Authorization头来启用认证。
如果在s3-nginx-proxy前部署了Cloudflare,还可通过其API清除Cloudflare CDN上的文件。
可通过在缓存配置中设置以下变量启用:
purgeCloudflareApiToken:必须是启用清除功能的令牌。Zone > Cache Purge > Purge权限的自定义令牌。purgeCloudflareZoneId:可在Cloudflare控制台的域名主页找到。若使用Amazon S3,S3端点会根据region属性计算。对于其他提供商,可使用upstream代替。
例如,纽约3区的DigitalOcean Spaces的端点为nyc3.digitaloceanspaces.com。
请注意,使用第三方提供商可能无法享受Amazon S3细粒度权限带来的额外安全性(可能导致存储桶列表公开!)。
可在metrics.json中启用Prometheus兼容的指标端点。
暴露的指标包括:
nginx_http_requests_total:HTTP请求总数(计数器)nginx_http_request_duration_seconds:HTTP请求延迟(直方图)nginx_http_connections:HTTP连接数( gauge )nginx_upstream_cache_status:按上游缓存状态分类的HTTP请求数(计数器)密钥已移至./data/etc/proxy-config/secrets.json,且每个密钥集的键需要添加到虚拟主机配置中(参见默认的./data/etc/proxy-config/virtualhosts.json)。
该项目目前非常基础,类似于最小可行产品。
计划功能包括缓存清除能力(全量和特定键)以及更多配置选项。
可通过向本仓库提交拉取请求进行贡献。我们希望通过bounty系统对较大贡献给予荣誉和奖励。如果不确定可以帮助做什么,请查看开放issues列表。
请注意,虽然我们已有某些标准,但并非一成不变。如果您对代码结构、使用的库或贡献流程有任何问题,请提出。我们欢迎所有反馈,以使该项目的贡献过程尽可能顺畅。
osu!客户端代码、框架和服务器端组件均根据MIT许可证授权。详情请参见许可证文件。简而言之,只要在任何软件/源代码副本中包含原始版权和许可声明,您可以进行任何操作。
请注意,这不包括在任何软件、资源、广告或促销中使用"osu!"或"ppy"品牌,因为这受商标法保护。
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 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 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429