因为种种原因, 被迫采用云负载均衡代理harbor, 使用负载均衡的https方式代理访问后端的http协议的harbor ,证书配置到负载均衡上,如下:
user---->slb(HTTPs)–>harbor(http) --> core/protal/registry
部署Harbor镜像仓库
安装docker与docker-compose
这一步骤不知道操作的,自行百度
下载Harbor离线包部署
# tar zxvf harbor-offline-installer-v2.0.0.tgz
# cd harbor
# cp harbor.yml.tmpl harbor.yml
# vi harbor.yml
如果你已经安装请删除掉harbaor目录, 重新解压; 不要执行./prepare 不要执行./iinstall.sh
使用这种方式我们配置harbor.yml文件时,需要把https段配置注释,否则会发生http自动重定向到https,导致循环重定向,
配置hostname 设置为负载均衡ip对应的外网域名 harbor.wxadt.cn 是我的负载均衡的域名 配置如图
# The IP address or hostname to access admin UI and registry service.
# DO NOT use localhost or 127.0.0.1, because Harbor needs to be accessed by external clients.
# 配置hostname 设置为负载均衡ip对应的外网域名
hostname: harbor.wxadt.cn
# http related config
# http开启 https注释掉
http:
# port for http, default is 80. If https enabled, this port will redirect to https port
port: 80
# https related config
#https:
# https port for harbor, default is 443
# port: 443
# The path of cert and key files for nginx
# certificate: /your/certificate/path
# private_key: /your/private/key/path
配置代理域名
external_url: https://harbor.wxadt.cn
好执行 ./prepare ./install.sh
[root@lnt-gitlab2 ~]# ./prepare
[root@lnt-gitlab2 ~]# ./install.sh
等待服务启动ok 访问 admin IU 界面 https://harbor.wxadt.cn 结果正常 在本地使用 docker login harbor.wxadt.cn 也是ok, 但是push报错;
push报错:unauthorized: unauthorized to access repository(unauthorized: authentication required) 或者日志里面报错:unknown blob
头大,解决方法
第一步.停harbor服务
docker-compose down
.修改nginx配置
编辑 harbor.yml目前下的common/config/nginx/nginx.conf , 注释掉所有的 proxy_set_header X-Forwarded-Proto $scheme;
启动
docker-compose up -d
|