前期准备工作
一台可以访问 DockerHub 的 vps,一个域名和 CloudFlare 的账号。(域名是必须准备的,方案一需要 vps,方案二需要 CloudFlare 账号)
方案一:使用 Nginx + 宝塔面板搭建
安装好宝塔面板和 Nginx 后,点击网站–添加网站–填写域名–PHP 版本选择静态–确定,这样网站就创建好了。然后点击网站设置,找到 SSL,点击 Let’s Encrypt 申请证书,申请好证书后,点配置文件进行以下修改。
将
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
error_log /dev/null;
access_log /dev/null;
}
location ~ .*\.(js|css)?$
{
expires 12h;
error_log /dev/null;
access_log /dev/null;
}
修改为
# 用于 Docker 代理服务
location /v2/ {
proxy_pass https://registry-1.docker.io;
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_request_buffering off;
proxy_http_version 1.1;
proxy_read_timeout 3600s; # 设置读取超时时间为 1 小时
proxy_send_timeout 3600s; # 设置发送超时时间为 1 小时
send_timeout 3600s; # 设置发送超时时间为 1 小时
proxy_connect_timeout 3600s; # 设置连接超时时间为 1 小时
proxy_set_header Authorization $http_authorization;
proxy_pass_header Authorization;
proxy_intercept_errors on;
recursive_error_pages on;
error_page 301 302 307 = @handle_redirect;
}
location @handle_redirect {
resolver 1.1.1.1;
set $saved_redirect_location '$upstream_http_location';
proxy_pass $saved_redirect_location;
}
# 用于 Docker 代理服务
保存即可。
方案二:使用 CloudFlare Worker 搭建
要使用方案二需要把域名的 DNS 服务器修改为 CloudFlare 的。登陆后,在面板左侧找到 Workers 和 Pages,然后点击右侧的 创建应用程序、创建 Worker,修改一个好记的名字,部署。接下来编辑代码,修改 worker.js 的内容,并新建 docker.html,代码在这篇文章里:CloudFlare Wokers代码备份,修改好后,点击右上角的 部署,稍等片刻最后,返回面板,在设置,触发器处设置一个自己的域名,一切就大功告成了 不建议使用自带的 workers.dev 的域名,被墙了。
使用方法
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容