首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过查询字符串设置Haproxy集后端服务器

通过查询字符串设置Haproxy集后端服务器
EN

Server Fault用户
提问于 2016-05-18 16:38:57
回答 1查看 2K关注 0票数 0

我使用粘性会话对后端服务器进行有状态请求。Haproxy设置cookie,设置运行良好。现在,我希望通过一个用于测试的查询字符串和不能使用cookie的客户端来设置所需的后端服务器。

这两种卷发应该指向相同的后端:

代码语言:javascript
运行
复制
curl mysite.com -I --cookie "serverid=app-2"
curl mysite.com?serverid=app-2 -I

我尝试过许多配置组合,但都没有效果。

代码语言:javascript
运行
复制
backend myapp

  cookie      serverid insert indirect nocache

  stick-table type string len 32 size 1M

  stick on cookie(serverid)
  stick on url_param(serverid)

  server app-0 111.111.111.111:80 cookie app-0
  server app-1 222.222.222.222:80 cookie app-1
  server app-2 333.333.333.333:80 cookie app-2

有可能在哈代做这件事吗?

EN

回答 1

Server Fault用户

回答已采纳

发布于 2016-05-19 13:18:20

是的,有可能。

Stick表支持客户端服务器的持久性,但它们没有定义给定的客户端最终在哪个服务器上。这就是cookie指令所做的(与server指令的cookie选项相结合)。

不幸的是,如果您的客户不支持cookie,那么它就没有多大用处。

解决这个问题的方法是使用一组use-server行来捕获这些情况。这些都是在cookie路由之前处理的,并且优先于cookie路由,因此如果use-server匹配,它将被使用。

考虑到您请求问题中提到的两个curl命令在同一个框中结束,这个配置在我的测试中适用(尽管它可能是非常小的)。

代码语言:javascript
运行
复制
backend myapp

  cookie serverid insert indirect nocache

  use-server app-0 if { urlp(serverid) -i app-0 }
  use-server app-1 if { urlp(serverid) -i app-1 }
  use-server app-2 if { urlp(serverid) -i app-2 }

  server app-0 142.135.221.205:10001 cookie app-0
  server app-1 142.135.221.205:10002 cookie app-1
  server app-2 142.135.221.205:10003 cookie app-2

如果您有超过3台服务器,它将变得有点笨重,但这是目前我能看到的唯一方式,使它的工作方式,你需要。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/777567

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档