![上游哈希会话持久性中的变量使用](https://linux22.com/image/1588369/%E4%B8%8A%E6%B8%B8%E5%93%88%E5%B8%8C%E4%BC%9A%E8%AF%9D%E6%8C%81%E4%B9%85%E6%80%A7%E4%B8%AD%E7%9A%84%E5%8F%98%E9%87%8F%E4%BD%BF%E7%94%A8.png)
假设我有 1 台 nginx 前端服务器,它将负载平衡到 2 台应用服务器并需要会话持久性。
我可以像这样建立一个上游组。
上游后端 {
哈希 $request_uri 一致;服务器后端1;服务器后端2;}
如果请求总是有一个名为“x-user-name”的 HTTP 标头,我希望我可以这样做:
哈希$http_x_user_name一致;
但它似乎对我不起作用。
有人知道这是否可行吗?或者上游上下文中有哪些变量可用?
我也尝试过 $sent_http_x_user_name 和 $upstream_http_x_user_name。
非常感谢您的帮助!
注意:nginx 仅限开源,不是专业版,因为如果可以选择的话我会使用“sticky”。
山姆
答案1
看来这确实有效。从哈希中删除一致性可确保其更好地平衡。我将 nginx 置于调试状态,输出显示它正在运行。