如何在haproxy中保持REST生命周期

问题描述 投票:0回答:1

我想将对给定资源的所有请求路由到同一服务器。如果在服务器上创建了资源,则随后的所有请求都应路由到同一服务器上。

要粘贴在URL上不是问题,但是如何从第一个响应中填写记录表?

示例:

请求:POST /资源

{
  "value": "bla"
}

响应:

{
  "id": "1234",
  "value": "bla"
}

GET / resources / 1234

{
  "id": "1234",
  "value": "bla"
}

第二个请求应路由到处理第一个请求的同一服务器。有没有办法用haproxy做到这一点?

haproxy
1个回答
0
投票

最后找到了可行的解决方案。如果有人对解决方案感兴趣,我会发布此信息。后端部分中的相关行如下:

    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的响应标头可以更轻松地处理这种情况。

© www.soinside.com 2019 - 2024. All rights reserved.