为Docker创建自动化nginx反向代理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为Docker创建自动化nginx反向代理相关的知识,希望对你有一定的参考价值。

参考技术A 反向代理服务器是一种通常位于web服务器之前的服务器,它可以提供web服务器本身没有的附加功能。
例如,反向代理可以提供SSL终端、负载均衡、请求路由、缓存、压缩,甚至A/B测试。
当用docker容器运行web服务时,运行一个反向代理可以简化部署。

docker容器被分配随机的IP和端口,这使得从客户端的角度来定位这些容器比较困难。默认地,这些IP和端口是私有的,不能从外部访问,除非它们和宿主机绑定。
把容器和宿主机绑定,会阻止运行在同一个端口上的容器。例如,每次都只能有一个docker绑定到端口80。另外,这也使得部署新版本的容器变得复杂。因为新版本只有在旧版本停止服务后,才能启动服务。
反向代理可以解决上面的这些问题,同时通过提供0宕机时间来改进可靠性。

参考:

Docker 安装 Nexus3,并配置 Nginx 反向代理

参考技术A 目前,市面上支持 Docker 镜像存储的主流数据仓库主要有以下 4 种:

这里,我们将选用 Nexus3 作为数据仓库,因为 Nexus3 支持非常多的仓库类型,例如: maven 、 docker 、 yum 、 apt 、 npm 、 ruby 、 gems 、 pypi 等

在 Nexus3 支持 3 种 Docker 仓库:

这里,我们将采用 Docker 的形式安装 Nexu3,这样可以减少很多不必要的麻烦,并且也方便以后的迁移工作
步骤大致如下:

代理仓库(docker-proxy)

聚合仓库(docker-group)

由于,三种仓库支持的功能都不太完美:

故使用 Nginx 进行代理:通过请求方式的不同,代理到不同的仓库,从而实现仓库操作上的统一,具体配置如下:

到这里,基本上就完成了 Nexus3 的搭建工作和 Nginx 的代理工作

参考:
https://help.sonatype.com/repomanager3
https://github.com/docker/docker-registry
https://zhang.ge/5139.html

以上是关于为Docker创建自动化nginx反向代理的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Weave 以及 Docker 搭建 Nginx 反向代理/负载均衡服务器

docker反向代理中的nginx + vault

Docker 安装 Nexus3,并配置 Nginx 反向代理

nginx 反向代理可以访问多个 docker 容器

Nginx反向代理docker容器进行域名解析绑定的实现方法

gitlab docker nginx 反向代理到子路径