题 如何根据Nginx中的子域将代理反转到不同的地方?


我有多个子域,都指向一台机器,一个IP地址。在这台机器上,我想让nginx充当反向代理,并且根据用于访问机器的子域,我希望它将代理反向到另一台服务器。我见过的所有使用nginx作为反向代理的例子都使用了 location,但据我所知,只适用于路径,而不适用于不同的子域。我怎样才能实现我想要的目标?


6
2018-02-01 04:03




这可能有点过于宽泛。你能发布更多关于你已尝试过的内容吗? - Will


答案:


除非我完全误读你的问题:你只需为每个子域设置服务器块,并为该子域的根定义正确的反向代理,即:

 server {
        server_name subdomain1.example.com;
        location / {
            proxy_pass       http://hostname1:port1;
        }
 }
 server {
        server_name subdomain2.example.com;
        location / {
            proxy_pass       http://hostname2:port2;
        }
 }

13
2018-02-01 10:11



很抱歉迟到的回复,但我明白了! - markasoftware


几乎是一样的。

location /foo { rewrite ^/foo(.+)$ /$1 break; proxy_pass http://foo; } location /bar { rewrite ^/bar(.+)$ /$1 break; proxy_pass http://bar; }


3
2018-02-01 05:37



这不是我想要的。看到接受的答案 - markasoftware
咀嚼和消化是请求者的负担,而不是我的。 - drookie