NGINX作为另一个容器的反向代理 - 如何配置配置文件

时间:2016-07-14 15:43:05

标签: docker

我想在另一个容器前面安装Nginx反向代理。这两个容器将使用以下命令在同一个docker网络上:

docker network create my-net

现在,通常我可以检查容器所在的IP,然后在Nginx配置文件中使用它。我如何做到这一点,这是无缝的?这样我就可以使用一个docker-compose文件,让两个容器在同一个网络上,并正确配置Nginx。

感谢

2 个答案:

答案 0 :(得分:1)

我建议使用Automated Nginx reverse proxy for docker containers

  

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

答案 1 :(得分:1)

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

搬运工-compose.yml

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

然后在nginx配置中:

proxy_pass  http://php;

您不应该指定&#34;链接&#34;用于nginx compose块中的网络(它应该知道所有服务名称),但是它将有助于定义容器的加载顺序。

  

默认情况下,Compose会为您的应用设置单个网络。每   服务容器加入默认网络,两者都是   该网络上的其他容器可以访问,并且可以被发现   它们的主机名与容器名相同。

     
    

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