使用NGINX作为代理的多个泊坞窗容器(域)

时间:2017-04-23 18:09:51

标签: apache nginx docker proxy virtualization

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

我尝试做的是隔离所有网站,每个网站都在自己的docker容器中。

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

我尝试了类似的东西(在服务器上以root身份):

/ etc / hosts:

127.0.0.1       example.com

NGINX配置:

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容器上隔离/运行实时网站吗?或者我应该寻找其他VM解决方案吗?

提前致谢。

编辑:问题出在我的NGINX配置文件中。奇怪的是,我没有收到NGINX服务器的错误。

更改
location \ {

location / {

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

0 个答案:

没有答案