是否可以在NGINX或其他負載平衡器中定義自定義路由? 也就是說我有一個cookie或一個標題,並根據它的值決定選擇哪個後端服務器? 我需要一些非常簡單的邏輯 - 值A1,A2,A3 - 服務器A,值B1,B2到服務器B,其他所有到服務器C負載均衡器中的自定義路由
2
A
回答
3
如果你需要一些粘性會話,有開源的第三方模塊可以用nginx做到這一點,而本地實現是商業訂閱的一部分。另外,由阿里巴巴開發的nginx的開源中文分支tengine可以做到這一點。
如果您想以自定義方式執行此操作,請使用地圖avoid processing a chain of if blocks來處理所有請求。這對於可讀性也更好。例如,使用cookie:
map $cookie_mycookie $node {
"~^a[1-3]$" "A";
"~^b[1-2]$" "B";
default "C";
}
server {
location/{
proxy_pass http://$node;
}
}
6
在nginx的你可以簡單地通過這樣做,如果:
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等等。 希望它有幫助...
相關問題
- 1. mod_cluster自定義負載均衡算法
- 2. 如何爲自定義路由配置反向代理/負載均衡器
- 3. Nginx多負載均衡器或單負載均衡器
- 4. GCP負載均衡器或Kubernetes類型=負載均衡器
- 5. 負載均衡器 - 如何爲自定義應用程序編寫一個負載均衡器?
- 6. 控制負載均衡器從Tomcat的路由
- 7. 負載均衡
- 8. 綁定地理負載均衡vs Nginx地理負載均衡
- 9. 使用負載均衡器
- 10. Socket.io和負載均衡器
- 11. 負載均衡服務器
- 12. Erlang負載均衡器
- 13. Amazon EC2負載均衡器上的負載平衡算法
- 14. Tomcat負載均衡
- 15. MongoDB負載均衡
- 16. 與負載均衡
- 17. EC2中的負載均衡器AWS
- 18. 負載均衡器中的HTTP會話
- 19. 訪問Azure中的負載均衡器?
- 20. 負載均衡器的SSL卸載
- 21. 負載均衡在localhost UDP由源IP
- 22. HAProxy - 基於URL的負載均衡路由
- 23. 使用動態路由的卡邁里奧負載均衡
- 24. 無法使用Microsoft Azure負載平衡器負載均衡tomcats
- 25. activemq負載均衡使用彈性負載平衡器?
- 26. HAProxy的,負載均衡
- 27. docker swarm的負載均衡
- 28. 負載均衡的Fiware Orion
- 29. nginx的負載均衡
- 30. HAProxy的負載均衡
我不需要粘滯會話。客戶端將設置一個cookie(比如客戶ID),我想將任何客戶重定向到特定的服務器! – 2014-11-04 18:28:40
@PavelBernshtam你真的看過我的回答嗎?!我在兩個第一句話中談到了粘性會話,我想你在那之後就不再讀書了。 – 2014-11-04 19:29:49
哦,對不起。你是對的! – 2014-11-04 20:34:14