NGINX多个proxy_pass配置

时间:2015-01-06 00:15:28

标签: nginx reverse-proxy

我想使用NGIX作为反向代理来显示不同的URL,指向同一台服务器,但是在不同的子文件夹上...... Web服务器与运行NGIX的Web服务器不同。

这是我的网络树,同一局域网上的服务器(192.168.1.10,比如80端口......)

/万维网
| - site1
   | - css
   | - js
 | - site2
 | - site3

我想设置NGIX,所以当我在浏览器上输入www.site1.com时,会显示192.168.1.10/www/site1

这可能吗?

这是我所做的,但它不起作用:

server {
    listen 80;
    server_name www.site1.com;
    root /www/site1;

    location / {
            proxy_pass         http://192.168.1.10;
    }

}

2 个答案:

答案 0 :(得分:3)

在nginx服务器(A)上,您可以在同一配置(V-host)文件中添加以下配置,也可以为/ etc / nginx / conf下的每个服务器标记创建不同的配置文件。 d /

我认为webserver ip是192.168.1.10,运行端口是80

server {
       listen 80;
       server_name www.site1.com;

       location / {
           proxy_pass http://192.168.1.10;
           root /www/site1;
       }


       }

server {
       listen 80;
       server_name www.site2.com;


        location / {
                   proxy_pass http://192.168.1.10;
                   root /www/site2;
                   }
        }

server {
        listen 80;
        server_name www.site3.com;

        location / {
                 proxy_pass http://192.168.1.10;
                 root /www/site3;
                   }
        }

答案 1 :(得分:0)

如果我理解正确,您需要在Web服务器中进行更改(让我们说服务器A)。不在运行Nginx的服务器中(服务器B)。

'根'您提到的指令是指服务器B.Nginx只会将所有来到www.site1.com的请求传递给服务器A.您必须配置服务器以根据主机名提供内容。

如果服务器A也在运行Nginx,您可以在服务器A 中进行如下配置。

server {
    listen 80;
    server_name www.site1.com;
    root /www/site1;
}

server {
    listen 80;
    server_name www.site2.com;
    root /www/site2;
}

server {
    listen 80;
    server_name www.site3.com;
    root /www/site3;
}