以NGINX为代理的多个docker容器(域)

我有一个服务器,一个IP和多个网站。

我试图做的是隔离所有的网站,每个网站在它自己的docker集装箱。

我需要的是,其NGINX作为代理,每个网站都有一个Docker容器。

我试过类似的东西(作为服务器上的根):

/ etc / hosts:

127.0.0.1 example.com 

NGINXconfiguration:

 http { upstream app-a { server 127.0.0.1:3000; } server { listen 80; server_name example.com www.example.com; location / { proxy_pass http://app-a; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Host $server_name; } } } 

泊坞窗:

 docker run -d -p 3000:80 coreos/apache /usr/sbin/apache2ctl -D FOREGROUND 

curl example.com

<title>Welcome to nginx!</title>

为什么我得到NGINX响应,而不是Apache服务器响应?

如果我在Docker容器上连接,Apache服务器启动:

sudo docker exec -i -t ID /bin/bash

curl 127.0.0.1

<html><body><h1>It works!</h1>

另外,在远程计算机(我的电脑)上,我有test.com指向我的服务器的公共IP。 如果我访问example.com,我会得到相同的NGINX响应。

还有一个问题:这是一个好办法,隔离/运行docker集装箱上的实时网站? 还是应该寻找另一个虚拟机解决scheme?

提前致谢。

编辑:问题是在我的NGINXconfiguration文件。 奇怪的是,我从NGINX服务器没有得到任何错误。

从更改

 location \ { 

 location / { 

现在工作正常。 谢谢@Oliver Charlesworth。