docker加速配置讨论

在宝塔网站设置反代理 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;              }      } “`

请登录后发表评论

    没有回复内容