nginx在docker swarm服务面前
我正在考虑如何在数周内以严肃的方式完成这项工作并且尚未得出结论. 假设您有一百个来来往往的网络应用程序.
由于gitlab已经使用docker service create创建,nginx将能够通过它的入口网络中的swarm-vip假dns名称来解析gitlab. 但是:仅当服务容器正在运行时.否则,nginx将无法启动,因为[emerg] 1#1:在上游找不到主机“gitlab” 现在,当你必须运行高可用性nginx时,这是一个破解者,确保proxy_pass的应用程序正在运行并不是你的事. 每当你更新nginx服务时,如果其他一百个群服务中只有一个即使在同一秒内也没有运行,它就不会出现.. wtf? 如果这不起作用,为什么我们需要在群体中进行名称解析呢? 我考虑过nginx虚拟主机模板的consul和动态生成(甚至不考虑docker-nginx-proxy!),但是应用程序非常不同,你可以说每个应用程序都有自己独立的配置.所有这些工作不是出于特殊原因,只是为了解决nginx的解决问题? 最佳答案
我建议换掉静态定义的nginx反向代理,用于知道swarm的traefik,并且可以在部署和销毁服务时动态重新配置自身.
这是一个示例实现: >为traefik创建一个与容器对话的网络:docker network create proxy traefik.toml
> traefik的示例撰写文件: 泊坞窗,compose.traefik.yml
>使用标签在同一网络上配置您的应用. 泊坞窗,compose.app.yml
为简单起见,上面的规则使用容器的路径前缀,但您可以使用您喜欢的任何规则代理您的应用程序. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |