自动将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)来注册容器及其端口.然后,您的代理或应用程序可以使用像https://github.com/kelseyhightower/confd这样的模板系统编写的配置文件. (编辑:吉安站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 重定向-如何在发布请求nginx上删除尾部斜杠
- ruby-on-rails-与ws://example.com/cable的WebSocket连接失
- ruby-on-rails-使用Capistrano Deploy复制Figaro的applicat
- angularjs – 在nginx中无法直接访问的角度路由
- 我应该在nginx中使用rewrite或return或proxy_pass吗?
- Nginx server_name regexp不能用作变量
- 缓存 – 清除nginx缓存文件并不总是有效
- node.js – 无法使用gzip为nginx中的分块传输编码关闭从Nod
- 在nginx中为相对URL使用别名时的禁止位置
- 套接字-未创建uwsgi套接字
- Django uwsgi nginx重定向到默认页面“欢迎来到N
- 如何在Apache服务器(和其他服务器)上的PHP中检测
- 带有PHP7和Nginx 1.9.9的502 Bad Gateway
- 如何使php中的nginx虚拟目录可访问?
- nginx – “include_recipe”与Vagrantfile“che
- symfony-使用Nginx无效更新symlink静态文件
- centos7下编译安装nginx-1.16.0
- node.js – 当我有Kubernetes时,nginx有什么意义
- if-statement-使用Puppet Nginx jfryman模块将if
- 如何在Nginx上使用FastCGI运行Perl脚本?
