Nginx 根据 URL 参数转发请求

Nginx 根据 URL 参数转发请求

设想 :

Web 请求通过端口 80 到达 nginx。我需要根据 URL 参数转发请求。

如果 URL 中包含userId=fooURL 中的任何内容,则它必须到达服务器 A

并且如果 URL 中包含userId=barURL 中的任何内容,那么它必须到达服务器 B

我可以使用什么配置选项来实现这一点?

答案1

/etc/nginx/站点可用/默认

 server {
    listen      80;
    server_name example.com;

    location ~ userId=foo {
         return     301 http://domainOfServerA$request_uri;
    }

    location  ~ userId=bar {
        return      301 http://domainOfServerB$request_uri;
    }
 }

无论如何,如果 bar/foo 是一个变量,你就应该为其编写正则表达式。

相关内容