nginx代理docker私有仓库(含SSL验证)
前言:
上一章提到了docker在1.3之后与Registry的交互走的https,但是我们只提供了http的服务,虽然可以通过在配置文件中加–insecure-registry的变量让docker走http去访问registry,但如果有多个客户端需要跟registry交互的话,需要在每个客户端的docker配置文件进行配置,还是比较麻烦的。
因此,可以使用nginx来代理docker私有仓库,然后在nginx上配置SSL的认证。
首先需要下载安装nginx,这里不做赘述。
一. nginx配置80端口代理registry
在上一篇文章已经搭建好了registry仓库运行在5000端口。实际运营的时候服务器上可能有许多个应用与服务在不同端口上运行,我们可能不想将这些端口都暴露出去(使用ufw管理防火墙),因此可以使用nginx将这些端口都反向代理到80端口。
比方说现在有一台服务器,域名是 domain.com,5000端口运行registry,8080端口运行tomcat。可以申请二级域名 registry.domian.com 和 tomcat.domain.com(命名规范不做深入讨论)。
下面以代理docker私有仓库registry为例。
使用 nginx -t 查找nginx配置文件路径:
nginx -t
可以看到nginx配置文件的路径:
cat nginx.conf,可以看到默认http块中有这么两行代码:
这两行的意思在conf.d和si