You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

HAProxy配置HTTP前端转发至HTTPS后端返回404故障排查

故障根因
  • 四层TCP模式仅做流量透传,七层HTTP模式未做请求头改写时,HAProxy转发给Google后端的请求会携带curl自动填充的Host: localhost:10005请求头。Google服务端基于Host头做虚拟主机路由,匹配不到对应站点时会直接返回默认404响应。
  • 原有后端配置未显式指定TLS握手的SNI字段,Google多域名托管场景下,未携带正确SNI的请求也会被导流到默认站点,加剧404问题。
  • 日志中出现的<BADREQ>记录为端口转发链路的偶发探测、残留连接重试产生的异常请求,和本次404故障无关联。
解决方案

注意:四层TCP模式无法修改应用层HTTP请求头,无法解决该问题,必须使用HTTP模式代理
调整后的完整haproxy.cfg配置如下:

global
  daemon
  maxconn 15
  log stdout format raw local0

defaults
  mode http
  balance first
  option httplog

frontend google
  bind *:10005
  # 转发前重写Host头为目标站点域名
  http-request set-header Host google.com
  default_backend google-url

backend google-url
  # 显式指定TLS握手SNI,关闭后端证书校验
  server xxx google.com:443 ssl verify none sni str(google.com)

配置重载生效后,执行原测试命令curl --location --request GET 'http://localhost:10005',即可正常收到Google的响应(默认会返回301跳转至www.google.com),404故障消失。

内容的提问来源于stack exchange,提问作者Christophe Blin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 03:31:01