在宝塔网站设置反代理 index.docker.io ,配置如下,放入群晖中使用,可以进行搜索,但不可以下载,似乎是需要过auth.docker.io验证,我找到了过验证的参考代码,但是不会整合,有很高手出手帮忙吗? 1、目前配置 “` location / { # Docker hub 的官方镜像仓库 proxy_pass https://index.docker.io; proxy_set_header Host index.docker.io; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # 关闭缓存 proxy_buffering off; # 转发认证相关的头部 proxy_set_header Authorization $http_authorization; proxy_pass_header Authorization; # 对 upstream 状态码检查,实现 error_page 错误重定向 proxy_intercept_errors on; recursive_error_pages on; # 根据状态码执行对应操作,以下为 301、302、307 状态码都会触发 error_page 301 302 307 = @handle_redirect; add_header Strict-Transport-Security “max-age=31536000″; add_header Cache-Control no-cache; proxy_ssl_server_name off; } location @handle_redirect { resolver 1.1.1.1; # DNS 解析 set $saved_redirect_location $upstream_http_location; proxy_pass $saved_redirect_location; } “` 2、auth.docker.io验证配置参考 “` server { listen 443 ssl; server_name xxx.com; ssl_certificate /www/sites/xxx.com/ssl/fullchain.pem; ssl_certificate_key /www/sites/xxx.com/ssl/privkey.pem; ssl_session_timeout 24h; ssl_ciphers ‘ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20- POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256’; ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; location /v2/ { proxy_pass https://registry-1.docker.io; # Docker Hub 的官方镜像仓库 proxy_set_header Host registry-1.docker.io; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # 关闭缓存 proxy_buffering off; # 转发认证相关的头部 proxy_set_header Authorization $http_authorization; proxy_pass_header Authorization; # 重写 www-authenticate 头为你的反代地址 proxy_hide_header www-authenticate; add_header www-authenticate ‘Bearer realm=”https://xxx.com/token”,service=”registry.docker.io”‘ always; # always 参数确保该头部在返回 401 错误时无论什么情况下都会被添加。 # 对 upstream 状态码检查,实现 error_page 错误重定向 proxy_intercept_errors on; # error_page 指令默认只检查了第一次后端返回的状态码,开启后可以跟随多次重定向。 recursive_error_pages on; # 根据状态码执行对应操作,以下为301、302、307状态码都会触发 error_page 301 302 307 = @handle_redirect; } # 处理 Docker OAuth2 Token 认证请求 location /token { resolver 1.1.1.1 valid=600s; proxy_pass https://auth.docker.io; # Docker 认证服务器 # 设置请求头,确保转发正确 proxy_set_header Host auth.docker.io; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # 传递 Authorization 头信息,获取 Token proxy_set_header Authorization $http_authorization; proxy_pass_header Authorization; # 禁用缓存 proxy_buffering off; } location @handle_redirect { resolver 1.1.1.1; set $saved_redirect_location ‘$upstream_http_location’; proxy_pass $saved_redirect_location; } } “`
没有回复内容