haproxy - 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 将请求定向到错误的服务器。为什么会这样?配置有问题吗?
解决方案
这是 2.2.0 中的错误,应该在 2.2.1 中修复
推荐阅读
- python - 如何在每次测试后重置 Django 测试数据库 ID?
- javascript - 从另一个函数接收数组并设置为值
- node.js - 快递应用程序中的摩根记录器不会为每个条目创建新行
- javascript - 是否显示=隐藏免费浏览器加载
- docker - Docker容器中的Weblogic端口绑定
- r - 使用 mixtools 时无法更改 R 中的轴以获取密度图
- go - 我可以使用 Go 在现有图像上添加标题吗?
- python - 搜索目录以根据数字返回固定文件
- vba - 循环遍历一张表中的列值并将另一列中的 COUNTIF 值粘贴到另一张表中
- firebase - 如何在 Firestore 中启用持久性存储?