Nginx代理问题

时间:2017-04-06 21:07:48

标签: nginx reverse-proxy

我在服务器上运行2个容器。它们都是具有默认nginx图像的docker容器。

我正在尝试使用Container1作为Container2的反向代理。

Container1位于IP地址172.17.0.3 Container2位于IP地址172.17.0.4

当我卷曲Container1时,我得到了默认的Nginx主页。 我已经编辑了容器2的默认主页,所以它只是 <p> HI </p>通过ip上的卷曲验证。

在我的服务器etc / hosts文件上,我添加了这一行

172.17.0.3    testapp.net

我的Container1&#39; /etc/nginx/conf.d/default.conf就是这个

server {
    listen       80;
    server_name  localhost;
location / {
    root   /usr/share/nginx/html;
    index  index.html index.htm;
}

#error_page  404              /404.html;

# redirect server error pages to the static page /50x.html
#
error_page   500 502 503 504  /50x.html;
location = /50x.html {
    root   /usr/share/nginx/html;
}

}

server {
    listen 80;
    server_name testapp.net;

   location / {
         proxy_pass http://172.17.0.4

   }

}

当我curl testapp.net时,我获得了Container1&n; nginx(基本的hello nginx html文件)的主页,并且没有被定向到Container2。为什么会这样?

1 个答案:

答案 0 :(得分:1)

所以你的问题是你只需要修改服务器上的/ etc / hosts文件,而不是修改docker容器中的文件。容器有自己的文件系统和自己的网络,这就是为什么你的修改不起作用。

解决方案是在docker run期间修改容器上的/ etc / hosts。

docker run --add-host testapp.net:172.17.0.3 your_image