NGINX作为另一个容器上的反向代理 – 如何configurationconfiguration文件

我想在另一个容器前面有Nginx反向代理。 这两个容器将在同一个dockernetworking上使用:

docker network create my-net 

现在,通常我可以检查一下容器的IP地址,然后在Nginxconfiguration文件中使用它。 我如何做到这一点,所以它是无缝的? 这样我就可以使用一个docker-compose文件,并将两个容器放在同一个networking上,并且正确configuration了Nginx。

谢谢

如果使用docker-compose,则不需要创build自己的networking,它将创build一个专用networking,以知道同一个撰写文件中的所有其他服务。 例如:

泊坞窗,compose.yml

 version: '2' services: php: image: php5.6 ...<snip>... nginx: image: nginx:stable-alpine ports: - "443:443" links: - php ...<snip>... 

那么在nginxconfiguration中:

 proxy_pass http://php; 

你不需要在nginx组合块中指定networking的“链接”(它应该知道所有的服务名),但是它将有助于定义容器的加载顺序。

默认情况下,Compose会为您的应用程序设置一个networking。 服务的每个容器都join默认networking,并且该networking上的其他容器都可以访问它们,并且可以通过与容器名称相同的主机名来发现它们。

https://docs.docker.com/compose/networking/

我build议为Docker容器使用自动化的Nginx反向代理

nginx-proxy设置一个运行nginx和docker-gen的容器。 docker-gen为nginx生成反向代理configuration,并在容器启动和停止时重新加载nginx。