从前面的文章harbor搭建docker私有镜像仓库可以看出harbor默认只能使用harbor.yml
中hostname指定的ip或主机名作为web访问地址,但在实际使用过程中,一般不允许ip地址或者主机名直接暴露在外访问,故需要配置nginx代理,通过代理后指定的地址进行访问。
一、设置原理
- 通过nginx为harbor后端暴露的地址及端口设置proxy地址,来源于harbor配置文件中的hostname及port
- 修改harbor配置文件再次使用nginx设置的proxy地址
二、Nginx代理
通过修改nginx的配置文件中server模块设置代理地址以及端口等信息,若harbor与nginx不在同一个服务器上或harbor不止一个服务器,还需要通过nginx的upstream模块来实现请求后端realserver及负载均衡,nginx配置文件修改处示例如下:
1 | ## 设置upstream |
三、Harbor设置
通过nginx配置了代理之后,还需要修改harbor的配置文件设置proxy地址:
1 | [root@xxxx harbor]# vim harbor.yml |
四、Web验证
通过浏览器访问http://xx.xx.com:port
访问代理后地址,这里因为nginx代理后使用了80端口,所以不需要写明端口。
至此,harbor配置nginx代理设置成功!