全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

IP归属甄别会员请立即修改密码
查看: 3676|回复: 11
打印 上一主题 下一主题

[经验] 1panel超简单nginx反代各种docker registry

[复制链接]
跳转到指定楼层
1#
发表于 2024-6-12 20:56:11 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 鸡不择食 于 2024-6-12 21:07 编辑

完整见 https://t.me/mjjgarden/8
参考了 https://blog.lty520.faith/博文/自建docker-hub加速镜像/ 的代码
支持
registry-1.docker.io
gcr.io
ghcr.io
registry.gitlab.com
nvcr.io
quay.io
代码已经简化了, 直接注释代码 就能反代 目标 regisry了.

先1panel 新建站点 使用反代功能, 新建后删除反代.

然后编辑 站点配置, 添加 下面代码
  1. ... 原代码...
  2.    
  3.     location / {
  4.         resolver 1.1.1.1;
  5.         # 这个docker hub 官方registry,大部份人用这个就够了,
  6.         set $target_host registry-1.docker.io;
  7.         # 根据情况自己选择使用, 一个站点(host)只能用一个 目标registry, 需要多个反代多个目标就建立多个不同站点.
  8.         # set $target_host ghcr.io; # github 使用的人也不少.
  9.         # set $target_host gcr.io; # Google
  10.         # set $target_host nvcr.io; # nvdia
  11.         # set $target_host registry.gitlab.com; # gitlab
  12.         # set $target_host quay.io; # quay
  13.   
  14.   proxy_pass https://$backend_host;
  15.         proxy_set_header Host $backend_host;

  16.         proxy_set_header X-Real-IP $remote_addr;
  17.         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  18.         proxy_set_header X-Forwarded-Proto $scheme;
  19.         # 关闭缓存
  20.         proxy_buffering off;
  21.         # 转发认证相关的头部
  22.         proxy_set_header Authorization $http_authorization;
  23.         proxy_pass_header Authorization;
  24.         # 对 upstream 状态码检查,实现 error_page 错误重定向
  25.         proxy_intercept_errors on;
  26.         # error_page 指令默认只检查了第一次后端返回的状态码,开启后可以跟随多次重定向。
  27.         recursive_error_pages on;
  28.         # 根据状态码执行对应操作,以下为301、302、307状态码都会触发
  29.         #error_page 301 302 307 = @handle_redirect;
  30.         error_page 429 = @handle_too_many_requests;
  31.     }
  32.    

  33.   #处理重定向
  34.     location @handle_redirect {
  35.         resolver 1.1.1.1;
  36.         set $saved_redirect_location '$upstream_http_location';
  37.         proxy_pass $saved_redirect_location;
  38.     }
  39.     # 处理429错误, 如registry-1.docker.io 短时间请求太多会触发, 此时可以cf work方案接力, 或者 使用 warp
  40.     location @handle_too_many_requests {
  41.         #proxy_set_header Host cfcr.j8.work;  # 对应 Worker设置的域名
  42.         #proxy_pass http://cfcr.j8.work; # 对应 Worker设置的域名
  43.         #proxy_set_header Host $http_host;
  44.     }
复制代码
11#
 楼主| 发表于 2024-6-13 22:58:47 | 只看该作者
emily1218 发表于 2024-6-13 22:34
大佬能发一份完整配置不 咋保存都是报错
  1. server {
  2.     listen 80 ;
  3.     listen [::]:80 ;
  4.     listen 443 ssl http2 ;
  5.     listen [::]:443 ssl http2 ;
  6.     server_name cr.j8.work;
  7.     index index.php index.html index.htm default.php default.htm default.html;
  8.     proxy_set_header Host $host;
  9.     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  10.     proxy_set_header X-Forwarded-Host $server_name;
  11.     proxy_set_header X-Real-IP $remote_addr;
  12.     proxy_http_version 1.1;
  13.     proxy_set_header Upgrade $http_upgrade;
  14.     proxy_set_header Connection "upgrade";
  15.     access_log /www/sites/cr/log/access.log;
  16.     error_log /www/sites/cr/log/error.log;
  17.    

  18.     location ^~ /.well-known/acme-challenge {
  19.         allow all;
  20.         root /usr/share/nginx/html;
  21.     }
  22.     include /www/sites/cr/proxy/*.conf;
  23.     ssl_certificate /www/sites/cr/ssl/fullchain.pem;
  24.     ssl_certificate_key /www/sites/cr/ssl/privkey.pem;
  25.     ssl_protocols TLSv1.3 TLSv1.2 TLSv1.1;
  26.     ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
  27.     ssl_prefer_server_ciphers on;
  28.     ssl_session_cache shared:SSL:10m;
  29.     ssl_session_timeout 10m;
  30.     add_header Strict-Transport-Security "max-age=31536000";
  31.     error_page 497 https://$host$request_uri;
  32.     proxy_set_header X-Forwarded-Proto https;
  33.     ssl_stapling on;
  34.     ssl_stapling_verify on;
  35.     if ($scheme = http) {
  36.         return 301 https://$host$request_uri;
  37.     }
  38.    
  39.     rewrite_log on;  # 开启 rewrite 日志
  40.    

  41.     # 优先级最低
  42.     location / {
  43.         
  44.         proxy_pass https://registry-1.docker.io; # Docker Hub 的官方镜像仓库
  45.         proxy_set_header Host registry-1.docker.io;
  46.         proxy_set_header X-Real-IP $remote_addr;
  47.         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  48.         proxy_set_header X-Forwarded-Proto $scheme;
  49.         # 关闭缓存
  50.         proxy_buffering off;
  51.         # 转发认证相关的头部
  52.         proxy_set_header Authorization $http_authorization;
  53.         proxy_pass_header Authorization;
  54.         # 对 upstream 状态码检查,实现 error_page 错误重定向
  55.         proxy_intercept_errors on;
  56.         # error_page 指令默认只检查了第一次后端返回的状态码,开启后可以跟随多次重定向。
  57.         recursive_error_pages on;
  58.         # 根据状态码执行对应操作,以下为301、302、307状态码都会触发
  59.         #error_page 301 302 307 = @handle_redirect;
  60.         error_page 429 = @handle_too_many_requests;
  61.     }
  62.     #处理重定向
  63.     location @handle_redirect {
  64.         resolver 1.1.1.1;
  65.         set $saved_redirect_location '$upstream_http_location';
  66.         proxy_pass $saved_redirect_location;
  67.     }
  68.     # 处理429错误
  69.     location @handle_too_many_requests {
  70.         #proxy_set_header Host cfcr.j8.work;  # Worker设置的域名
  71.         #proxy_pass http://cfcr.j8.work; # Worker设置的域名
  72.         #proxy_set_header Host $http_host;
  73.     }
  74. }


复制代码
10#
发表于 2024-6-13 22:34:24 | 只看该作者

大佬能发一份完整配置不 咋保存都是报错
9#
 楼主| 发表于 2024-6-13 22:15:16 | 只看该作者
emily1218 发表于 2024-6-13 22:13
没用过1panel  
“先1panel 新建站点 使用反代功能, 新建后删除反代.



用Nginx 也行的.
8#
发表于 2024-6-13 22:13:24 | 只看该作者
没用过1panel  
“先1panel 新建站点 使用反代功能, 新建后删除反代.

然后编辑 站点配置, 添加 下面代码”
这段看麻了  大佬能不能详解一下?
7#
发表于 2024-6-13 08:26:28 | 只看该作者
宝塔的反代不香?
6#
发表于 2024-6-13 08:22:21 | 只看该作者
nginx反代一直没成功,很慢
5#
发表于 2024-6-13 02:17:17 | 只看该作者
技术贴绑定加收藏
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2025-9-15 11:45 , Processed in 0.102104 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表