Docker 容器前的 NGINX 反向代理

Docker 容器前的 NGINX 反向代理

我们如何让 NGINX 反向代理proxy_pass进入正确的 IP/解析容器的主机名?我认为resolver指向公开的 Docker 嵌入式 DNS 是理想的。

上下文:Debian Host(未docker化)NGINX。Docker容器位于同一主机上,并且必然位于overlay网络上,并且本身运行良好。

我已经尝试并阅读了几个小时,类似的帖子包括:

https://stackoverflow.com/questions/35744650/docker-network-nginx-resolver

https://stackoverflow.com/questions/39729663/query-docker-embedded-dns-from-host

我无法nslookup使用 Consul 和各种 DNSmasq

socat方法几乎让我到达那里,但它解析并吐出了非暴露(非覆盖)网络 IP

答案1

您想要实现什么?据我所知,运行 docker 容器时,您应该在 docker 主机上打开其端口。这样,nginx 代理配置就可以指向本地地址 (localhost/127.0.0.1) 上的所需端口。

例如我会运行: docker run -p 8080:8080 myapp

然后使用以下命令配置 Nginx:

location / {
    proxy_pass http://127.0.0.1:8080;
    ... other desired options ...
}

相关内容