nginx代理redirect请求到不同的代理

我有三个LXC容器(CN1,CN2,CN3)。 他们各自运行自己的Apache实例并拥有自己的networking,因此每个容器都有自己的私有IP。

我设置了所有的容器来侦听专用于Apache的私有IP。 我还设置了Nginx作为主机的代理,根据请求的域来引导任何stream量。

所以我有web1 – > CN1(10.0.3.2),web2 – > CN2(10.0.3.3),web3 – > CN3(10.0.3.4)。

当我去到web1时,它显示了正确的页面。 当我去到web2时,它显示了正确的页面。 但是,当我去到web3时,它显示了web2的页面。

这是我的Nginx服务器configuration:

WEB2

 服务器{
         server_name web2;

        位置 / {
                 proxy_set_header X-Real-IP $ remote_addr;
                 proxy_set_header主机$主机;
                 proxy_set_header X-Forwarded-For $ proxy_add_x_forwarded_for;
                 proxy_pass http://10.0.3.3:802;
         }
 } 

WEB3

 服务器{
         server_name web3;

        位置 / {
                 proxy_set_header X-Real-IP $ remote_addr;
                 proxy_set_header主机$主机;
                 proxy_set_header X-Forwarded-For $ proxy_add_x_forwarded_for;
                 proxy_pass http://10.0.3.4:804;
         }
 } 

Apache在web3上运行,当我从主机本身telnet到它时,我得到了页面:

  root @ SKYNet:/ etc / nginx / sites-available#telnet 10.0.3.4 804
尝试10.0.3.4 ...
连接到10.0.3.4。
转义字符是'^]'。
 GET / HTTP / 1.1
主持人:web3

 HTTP / 1.1 200 OK
date:2013年5月26日星期日17:00:27 GMT
服务器:Apache / 2.2.22(Ubuntu)
 Last-Modified:Sun,26 May 2013 16:27:58 GMT
 ETag:“20457c-b1-4dda183dd360e”
接受范围:字节
内容长度:177
变化:接受编码
内容types:文本/ HTML
 X-Pad:避免浏览器错误

有用!

这是此服务器的默认网页。

Web服务器软件正在运行,但尚未添加内容。

我也可以从我的家用机器ping通,也可以从外部网站ping通网站。 我甚至有一个朋友testing它,并显示相同的东西(Web2的索引文件,而不是自己的)。

我忘了启用Nginx的configuration。

假设您的站点可用configuration存储在/etc/nginx/sites-available/并且Nginx从/etc/nginx/sites-enabled/读取以查看要处理的服务器,请执行以下操作:

 ln -s /etc/nginx/sites-available/server_config /etc/nginx/sites-enabled/server_config 

然后重新启动或重新加载Nginx。