首页 > 解决方案 > HAProxy 将请求路由到错误的服务器

问题描述

我们正在为我们的应用程序使用 HAProxy。我们有一个单独的服务器用于站点、API、文档和博客。我们有以下 HAProxy 配置

frontend http
  mode http
  bind *:80

  redirect prefix https://www.kbook.com code 301 if { hdr(host) -i kbook.com }
  redirect scheme https code 301 if { hdr(host) -i www.kbook.com } !{ ssl_fc }
  redirect scheme https code 301 if { hdr(host) -i docs.kbook.com } !{ ssl_fc }
  redirect scheme https code 301 if { hdr(host) -i api.kbook.com } !{ ssl_fc }

  acl www       hdr(host) -i www.kbook.com
  acl docs      hdr(host) -i docs.kbook.com
  acl api       hdr(host) -i api.kbook.com
  acl blog      path -i -m beg /blog

  use_backend blog_server if www blog
  use_backend site_server if www
  use_backend api_server if api
  use_backend docs_server if docs


frontend https
  mode http
  bind *:443 ssl crt /etc/ssl/live/wildcard_kbook.pem alpn h2,http/1.1

  redirect prefix https://www.kbook.com code 301 if { hdr(host) -i kbook.com }

  use_backend blog_server if { ssl_fc_sni -i www.kbook.com } { path -i -m beg /blog }
  use_backend site_server if { ssl_fc_sni -i www.kbook.com }
  use_backend api_server if { ssl_fc_sni -i api.kbook.com }
  use_backend docs_server if { ssl_fc_sni -i docs.kbook.com }

HAProxy 版本:2.2.0-1ppa1~bionic

问题:

当我们访问该站点 ( www.kbook.com ) 时,它有时会起作用。有时它会转到博客服务器,说 404 未找到。我希望“www.kbook.com”应该始终访问站点服务器。这甚至发生在文档和 API 请求中。这些请求有时也会发送到博客服务器。

HAproxy 将请求定向到错误的服务器。为什么会这样?配置有问题吗?

标签: haproxy

解决方案


这是 2.2.0 中的错误,应该在 2.2.1 中修复


推荐阅读