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

标签 nginx load-balancing

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

最佳答案

在 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;
}

这是简单的正则表达式,所以如果“yourcookiename”的值为 a1、a2 等,它将转到 uprstream_a 等。 希望对您有所帮助...

关于nginx - 负载均衡器中的自定义路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26731296/

相关文章:

node.js - 如何使带有房间的 Node.js 服务器可扩展

jboss - JBoss 中使用 mod_cluster 进行负载平衡

kubernetes - GCE LoadBalancer : Invalid value for field 'namedPorts[0].port' : '0' . 必须大于或等于 1

linux - 英镑配置,通配符的 https 重定向问题

nginx - 使用 Nginx 的规范 URL

node.js - 哪个是在 ubuntu 16.04 中同时安装 Nginx 和 apache 的最佳方式

mysql - Magento 在查询删除 50000 个产品时失去与 mysql 服务器的连接

nginx - 顺序请求处理(CPU 密集型处理)

ruby-on-rails - 从 www 重定向到非 www 的 Nginx HTTPS 问题

grails - 如何在Grails应用中控制哪个服务器消耗RabbitMQ队列