负载均衡器中的自定义路由

Pav*_*tam 2 load-balancing nginx

是否可以在NGINX或其他负载均衡器中定义自定义路由?即我有一个cookie或标题,并根据其价值我决定选择哪个后端服务器?我需要一些非常简单的逻辑 - 值a1,a2,a3 - 到服务器A,值b1,b2到服务器B,所有其他逻辑到服务器C

Ery*_*ryk 6

在nginx中,您只需使用if即可:

location / {
    if ($http_cookie  ~* "yourcookiename=a") {
        proxy_pass http://upstream_a;
        break;
    }
    if ($http_cookie ~* "yourcookiename=b") {
        proxy_pass http://upstream_b;
        break;
    }
    proxy_pass http://upstream_c;
}
Run Code Online (Sandbox Code Playgroud)

这是简单的正则表达式,所以这种方式如果"yourcookiename"具有值a1,a2等,它将转到uprstream_a,依此类推.希望能帮助到你...