请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

使用nginx代理harbor无法登录

harbor配置文件中图片描述
hostname 配置为公网ip的话就只能公网ip才能pull镜像,配置内网ip的话就无法在外网登录push镜像,外网的浏览器都可以通过5001端口访问登录ui,我使用了nginx来代理5001端口到本地ip,图片描述
我在外网使用这个代理的 5000 端口时
图片描述
这个登录的ip地址我可以使用浏览器访问并使用浏览器登录,但是无法执行docker login ,docker的配置文件我也修改过了图片描述
使用curl也是有返回的
图片描述
这种问题是什么导致的,很诡异为啥web能访问docker login用不了。

正在回答 回答被采纳积分+3

1回答

刘果国 2022-03-17 09:37:05

nginx代理harbor有一点需要注意,就是必须走4层代理,不能是7层

0 回复 有任何疑惑可以回复我~
  • 提问者 慕田峪7192548 #1
    多谢指点,改完nginx 4层代理后,我发现了一个规律,docker login 请求后貌似harbor会返回一个ip地址,让客户端去连接harbor返回的ip,这个ip就是harbor配置文件内的 external_url 配置,我把这个修改为公网ip后可以访问和正常登录了,我想问下我这个仓库如果想内网外网都能访问该怎么做,对外的5000端口是有防火墙名单限制的,内网服务去连接仓库时也去走公网ip了导致被自己限制住了。
    回复 有任何疑惑可以回复我~ 2022-03-17 13:35:04
  • 提问者 慕田峪7192548 #2
    问题解决了,外网需要同步镜像的服务器配置一个hosts指向服务器的外网ip 内网服务器也配置一个hosts指向内网的ip,配置harbor返回的ip是刚配置的hosts就行了,内网通过内网ip访问,外网就可以通过外网ip访问了。 哈哈 ~~~
    回复 有任何疑惑可以回复我~ 2022-03-17 15:27:33
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号