我想将对给定资源的所有请求路由到同一服务器。如果在服务器上创建了资源,则随后的所有请求都应路由到同一服务器上。
要粘贴在URL上不是问题,但是如何从第一个响应中填写记录表?
示例:
请求:POST /资源
{
"value": "bla"
}
响应:
{
"id": "1234",
"value": "bla"
}
GET / resources / 1234
{
"id": "1234",
"value": "bla"
}
第二个请求应路由到处理第一个请求的同一服务器。有没有办法用haproxy做到这一点?
最后找到了可行的解决方案。如果有人对解决方案感兴趣,我会发布此信息。后端部分中的相关行如下:
acl recources_path capture.req.uri,field(1,?) /resources
stick-table type string len 10 size 5M
stick match capture.req.uri,field(3,/)
# trying to parse the id out of the post response
stick store-response res.payload(0,0),field(2,{),field(4,\") if METH_POST recources_path
尤其是响应正文的解析似乎不是使用haproxy的预期方式。添加带有资源ID的响应标头可以更轻松地处理这种情况。