nginx上游行为(如果没有哈希头)
我希望使用:nginx上游行为(如果没有哈希头),nginx,Nginx,我希望使用: upstream backend { hash $http_my_custom_header; server 1; server 2; } 我想处理两个案件: 如果我的头有my_custom_头,它应该坚持与my_custom_头的值关联的单个节点 如果请求中没有my_custom_头,则应使用标准循环 以上配置是否足以实现这一点?我是否可以假设,如果在散列中没有使用头,loadbalancer将回退到标准循环 我查看了:但我没有找到确认 谢谢 您可以使用多个请
upstream backend {
hash $http_my_custom_header;
server 1;
server 2;
}
我想处理两个案件:
- 如果我的头有
,它应该坚持与my_custom_头
my_custom_头的值关联的单个节点
- 如果请求中没有
my_custom_头
,则应使用标准循环
散列中没有使用头,loadbalancer将回退到标准循环
我查看了:但我没有找到确认
谢谢 您可以使用多个请求参数的组合来平均分配负载,同时将相同的客户端固定在特定的上游服务器上:
upstream backend {
hash '$remote_addr $http_my_custom_header $http_user_agent';
server 1;
server 2;
}
在会话期间,用户代理和客户端的IP地址很可能是相同的
这些参数的组合将在单独请求序列期间保持不变,并将生成相同的哈希。
因此,不同的客户端将被均匀地分配到所有上游服务器上,无论它们是否具有自定义头
注意:当broswer配置为使用某个anonimizing服务时,同一客户端的查询可能来自不同的IP地址。您可以使用多个请求参数的组合来平均分配负载,同时将相同的客户端固定在特定的上游服务器上:
upstream backend {
hash '$remote_addr $http_my_custom_header $http_user_agent';
server 1;
server 2;
}
在会话期间,用户代理和客户端的IP地址很可能是相同的
这些参数的组合将在单独请求序列期间保持不变,并将生成相同的哈希。
因此,不同的客户端将被均匀地分配到所有上游服务器上,无论它们是否具有自定义头
注意:当broswer配置为使用某个Anonimize服务时,同一客户端的查询可能来自不同的IP地址