gpt4 book ai didi

load-balancing - HAProxy基于HTTP方法重写HTTP请求

转载 作者:行者123 更新时间:2023-12-05 08:33:55 24 4
gpt4 key购买 nike

我有 REST API。

为了简单起见,假设我有两个服务:

  • read.request.com
  • write.request.com

如何将所有读取请求(GET 方法)重写为read.request.com 以及所有写入 请求(POST、PUT、 DELETE 方法)到 write.request.com 使用 HAProxy?

最佳答案

不太确定哪一个适用于您的情况,但希望是。

一个后端

我想这就是你的情况。

frontend http-in
bind *:80

acl is_post method POST
acl is_get method GET

http-request set-header Host write.request.com if is_post
http-request set-header Host read.request.com if is_get

default_backend api

backend api
server one localhost:8080 check

所有这一切都是检查正在使用哪种方法,并在将请求传递到 localhost:8080 之前相应地设置 Host header 。

两个后端

在此设置中,您有一个代码实例仅针对读取请求运行,而另一个实例仅针对写入请求运行。在这种情况下,读取代码在 localhost:8080 上运行,写入代码在 localhost:8081 上运行。

frontend http-in
bind *:80

acl is_post method POST
acl is_get method GET

use_backend write if is_post
use_backend read if is_get

backend write
http-request set-header Host write.request.com #optional
server write_one localhost:8081 check

backend read
http-request set-header Host read.request.com #optional
server read_one localhost:8080 check

此选项与前一个选项一样,通过检查正在使用的方法开始,但不是使用一个 HAProxy 后端,而是分成两个。每个后端中的 http-request 行对于此配置是可选的。

希望对您有所帮助。

关于load-balancing - HAProxy基于HTTP方法重写HTTP请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34916975/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com