自动将docker容器附加到nginx负载均衡器的上游配置

前端之家收集整理的这篇文章主要介绍了自动将docker容器附加到nginx负载均衡器的上游配置前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在运行Docker Compose(v2)并且有一个节点服务(网站)和基于python的api部署,Nginx就在他们面前.

我想做的一件事是能够通过添加更多容器来扩展服务.如果我提前知道我将拥有多少个容器,我可以使用docker提供的容器的IP引用对Nginx上游配置进行硬编码.但是,问题是我希望上游Nginx配置是动态的,例如如果我添加另一个Docker容器,它只需添加将容器的位置附加到上游块中的IP上游列表.

我的想法是创建一个脚本,当容器改变时,它将使用env变量自动加上游服务器,但我不确定从哪里开始,找不到一个好的例子.

最佳答案
有几种方法可以实现这一目标.您所指的通常称为服务发现,有多种形式.我将描述我之前使用过的两个.

第一个也是最简单的一个(适用于单个服务器或仅在一个服务器上本地发现容器)是一个使用Docker套接字或API的本地代理. https://github.com/jwilder/nginx-proxy是最流行的之一,应该可以很好地在Compose中为可伸缩服务进行原型设计.

另一种方式(更多主机友好但更复杂)将在注册表(例如etcd或Consul)中注册服务,然后动态写出配置.为此,您可以使用注册系统(例如https://github.com/gliderlabs/registrator)来注册容器及其端口.然后,您的代理或应用程序可以使用像@L_404_3@这样的模板系统编写的配置文件.

原文链接:https://www.f2er.com/nginx/434921.html

猜你在找的Nginx相关文章