我希望大幅减少公开端口的数量,这些端口目前已被许多坞应用程序使用。
每个坞应用程序至少由一个Nginx和一个Python烧瓶组成,这是一种非常常见的设置技术-- https://blog.nolanemirot.com/2016/03/11/deploy-a-flask-app-with-gunicorn-and-docker/。
与我的由Nginx和Python组成的docker应用程序不同,给出的示例是使用WordPress作为docker应用程序示例。
对于我的情况,我想知道,是否还需要一个Nginx,在每个码头申请方面?它是多余的,还是应该仍然存在?
发布于 2019-03-01 02:06:33
编辑 Traefik将与您的停靠守护进程通信。它将监听带有"traefik“标志的容器,并调整其配置。例如:
-l traefik.frontend.rule=Host:monitor.your_domain
-l traefik.port=8080如果您的容器运行的应用程序正在侦听码头网络接口上的网络端口,那么只需设置-l traefik.port={you_apps_port},它就可以工作了。您需要容器与traefik位于同一个码头网络上,这是“--网络{name}”选项。
因此,只要您的烧瓶应用程序可以监听端口,您将不需要nginx。你也不需要在你的烧瓶应用程序容器和你的主机之间做端口绑定。
您只需要从外部码头网络访问80端口上的traefik容器。
如果您想要运行多个应用程序,您可能需要设置主机文件或(本地的?)DNS指向具有多个名称的traefik主机,例如:
127.0.0.1 app1.mytraefik
127.0.0.1 app2.mytraefik
127.0.0.1 app3.mytraefik然后设置附件1‘S标签“"frontend.rule=Host:app1.mytraefik”。Traefik将读取您的http主机头,并在"traefik.port“标签中通过码头网络将请求直接发送到港口上的容器。
https://serverfault.com/questions/956254
复制相似问题