我如何根据 URL 重定向 nginx 请求

我如何根据 URL 重定向 nginx 请求

nginx我有 3 个应用服务器,由服务器处理。

upstream he {
    server h1.abc.example.com;
    server h2.abc.example.com;
}

我如何根据某些标头值重定向请求。例如

  • abc-h1.abc.example.com应该去服务器h1.abc.example.com
  • def-h1.abc.example.com应该去服务器h2.abc.example.com

-h1.abc.example.com所有请求都会相同

答案1

最有效的方法是将指令server_name放在多个server块中。例如:

server {
    server_name abc-h1.example.com;
    proxy_pass http://h1.example.com$request_uri;
}

server {
    server_name def-h1.example.com;
    proxy_pass http://h2.example.com$request_uri;
}

显然,如果您没有使用 NGINX 作为 HTTP 代理,那么请proxy_pass用适当的指令替换:fastcgi_passuwsgi_pass等等。

相关内容