我有多个子域名,都指向一台机器和一个IP地址。 在这台机器上,我想让nginx充当反向代理,并且根据哪个子域被用来访问机器,我希望它将代理反向到不同的服务器。 所有我见过的使用nginx作为反向代理使用location的例子,但据我所知,只适用于path,不适用于不同的子域。 我怎样才能达到我想要的?
除非我完全误解了你的问题:你只需为每个子域设置服务器块,并为该子域的根定义正确的反向代理,即:
server { server_name subdomain1.example.com; location / { proxy_pass http://hostname1:port1; } } server { server_name subdomain2.example.com; location / { proxy_pass http://hostname2:port2; } }
几乎相同的方式。
location /foo { rewrite ^/foo(.+)$ /$1 break; proxy_pass http://foo; } location /bar { rewrite ^/bar(.+)$ /$1 break; proxy_pass http://bar; }