在 HTTPS 的反向代理 Nginx 后运行 HTTP Harbor
以下基于 Harbor v2.5.0。
最终看起来像这样 nginx (host,ssl)
-> harbor-nginx (non-ssl)
-> harbor
。
说明
首先服务上安装有 nginx
,且配置了 SSL
,现在可能在本机或者内网的其他机器上安装有 Harbor
,需要反向代理到本机映射出去。
harbor.yml
首先需要注释掉 https
相关的配置,并添加 external_url
的配置项。
1 | # Configuration file of Harbor |
harbor.conf
在 nginx
的 vhost
中新增相关配置,必须要配置 X-Forwarded-Proto $scheme
,client_max_body_size
按需配置。
1 | server { |
常见问题
docker login
出现 unauthorized: authentication required
harbor
内没有配置 external_url
。
访问 hub.example.cn
会重定向到某个端口
harbor
内需要取消 https
的配置。
docker push
出现 400 The plain HTTP request was sent to HTTPS port
反向代理 nginx
中没有配置 X-Forwarded-Proto $scheme
。