如何获取已在前端部分提供请求的服务器的名称?

Kir*_*lla 5 load-balancing haproxy

我需要在响应 HTTP 标头 X-Servedby 中添加服务器名称。有什么方法可以将 [server] 替换为已提供请求的服务器名称?

frontend front x.x.x.x:80
  default_backend balancing
  rspadd X-Servedby:\ [server] #I need to replace [server]

backend balancing
  server srv1 x.x.x.x:80 check
  server srv2 x.x.x.x:80 check
Run Code Online (Sandbox Code Playgroud)

Bel*_*dez 6

为此,请将frontend节更改为以下内容:

frontend front x.x.x.x:80
    default_backend balancing
    acl srv1 srv_id 1
    acl srv2 srv_id 2
    rspadd X-Servedby:\ srv1 if srv1
    rspadd X-Servedby:\ srv2 if srv2
Run Code Online (Sandbox Code Playgroud)

但是,更好的缩放替代方法是cookiebackend节中使用:

backend balancing
    cookie SRVNAME insert
    server srv1 x.x.x.x:80 cookie srv1 check
    server srv2 x.x.x.x:80 cookie srv2 check
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!