HaProxy 为空响应返回 502

问题描述

我对 HaProxy 超时有疑问。 我有一个在 HaProxy(1.8 版)后面运行的应用程序
我拥有的应用程序可以被视为一个黑盒,其中的内部结构是未知的。
在这个应用程序中有一个 RESTFul 端点,它需要相当长的时间来完成(少于 5 分钟)并返回一个空响应 (204)。
当我执行上述端点(通过 HAProxy)时,它返回 502 Bad Gateway 响应,我可以在 HAProxy 日志中看到以下日志消息。

RESTFul 端点:GET /abc/service/com.team.repository.internal.diagnostic

HaProxy 日志输出

Jul 14 05:55:01 localhost haproxy[116403]: 9.XX.XXX.219:38442 [14/Jul/2021:05:54:00.789] oift~ abc-default/defaultserver 0/0/143/-1/60217 502 204 - - SH-- 36/36/0/0/0 0/0 "GET /abc/service/com.team.repository.internal.diagnostic?id=com.team.repository.service.database.databaseStatisticsDiagnostic HTTP/1.1"

但是,当我从拓扑中删除 HAProxy 并调用相同的 RESTFul 端点时,我可以正确获得响应(空)。

global
    log         127.0.0.1:514 local0 info
    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     6000
    user        haproxy
    group       haproxy
    daemon
    stats socket /var/lib/haproxy/stats
    tune.ssl.default-dh-param 2048
    tune.maxrewrite     4096

defaults
    mode                    http
    log                     global
    option                  httplog
    option                  dontlognull
    option                  http-server-close
    option                  redispatch
    retries                 3
    timeout http-request    10m
    timeout queue           10m
    timeout connect         1m
    timeout client          10m
    timeout server         10m
    timeout tunnel         10m
    timeout http-keep-alive 10m
    maxconn                 6000

frontend  openshift
    bind        *:80
    bind        *:443 ssl crt /etc/ssl/private/hap.pem
    mode        http
    redirect    scheme https if !{ ssl_fc }
    maxconn     2000
    default_backend     abc-default

backend abc-default
    fullconn 1000
    balance roundrobin
    server defaultserver abc-haproxy.apps.sstream-dev-new.os.com ssl verify none

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)