在HAProxy

时间:2018-10-02 21:54:08

标签: haproxy

我正在尝试进行HTTP(第7层)检查以监视HAProxy负载平衡器中的后端状态。我配置了3个后端,每个都有自己的名称。当前配置如下:

backend apiservers
  balance                 leastconn
  mode                    http
  option                  httpchk GET /healthz HTTP/1.0\r\nAuthorization:\ Bearer\ SOME_TOKEN_HERE
  http-check              disable-on-404
  http-check              expect rstring ^ok
  server                  core1 core1.cloud:443 ssl check
  server                  core2 core2.cloud:443 ssl check
  server                  core3 core3.cloud:443 ssl check

问题是我无法切换到HTTP / 1.1,因为我无法找到一种通过httpchk请求传递真实的Host标头的方法。使用一些随机的虚拟主机字符串可能会导致功能出现问题,因此我需要将相应的后端主机名传递给Host标头。后端部分中的http-request add-header Host %[src]http-send-name-header Host之类的选项似乎不影响httpchk机制。 有什么想法吗?

1 个答案:

答案 0 :(得分:0)

每个haproxy docs 都可以在httpchk行中配置标题。文档中的示例为:

# Relay HTTPS traffic to Apache instance and check service availability 
 # using HTTP request "OPTIONS * HTTP/1.1" on port 80. 
backend https_relay
  mode tcp
  option httpchk OPTIONS * HTTP/1.1\r\nHost:\ www 
  server apache1 192.168.1.1:443 check port 80