openldap 与 haproxy-(ldap_result() 失败:无法联系 LDAP 服务器)

openldap 与 haproxy-(ldap_result() 失败:无法联系 LDAP 服务器)

我在使用 haproxy 代理的 openldap 时遇到了问题。身份验证在 CentOS (7.5.1804) 和 Debian (9.4) 上运行良好。唯一的问题是我在 syslog 和 authlog 中收到错误:

CentOS:
nslcd[10082]: [9f6e5f] ldap_result() failed: Can't contact LDAP server

Debian:
nscd: nss_ldap: reconnected to LDAP server ldap://haproxy.exemple.com after 1 attempt
当我将 LDAP 端点从以下配置直接更改为任何 ldap 服务器时,整个问题就消失了:

全球的
  日志 127.0.0.1 本地3
  pid文件/var/run/haproxy.pid
  chroot /var/lib/haproxy
  最大连接数 8192
  用户 haproxy
  组 haproxy
  守护进程
  统计套接字 /var/lib/haproxy/stats
  tune.ssl.默认-dh-param 2048

前端 ldap_service_front 模式 tcp 绑定 10.0.0.2:389 描述 LDAP 服务 选项套接字统计 选项 tcpka 客户端超时10秒 默认后端 ldap_service_back

后端 ldap_service_back 服务器 ldap01 10.0.0.3:389 检查下降 3 上升 5 间 5000 权重 10 服务器 ldap02 10.0.0.4:389 检查下降 3 上升 5 间 5000 权重 10 服务器 ldap03 10.0.0.5:389 检查下降 3 上升 5 间 5000 权重 10 服务器 ldap04 10.0.0.6:389 检查下降 3 上升 5 间 5000 权重 10

模式 tcp 平衡最小连接数 stick-table 类型 ip 大小 200k 有效期 30m 服务器超时12秒 连接超时10秒 选项 tcpka 选项 tcp-check tcp-检查连接端口 389 tcp-检查发送二进制 300c0201 tcp-检查发送二进制 01 tcp 检查发送二进制 6007 tcp-检查发送二进制 0201 tcp-检查发送二进制 03 tcp 检查发送二进制 04008000 tcp-check 期望二进制 0a0100 tcp-检查发送二进制 30050201034200

前端 ldaps_service_front 模式 tcp 绑定 10.0.0.2:636 ssl crt /etc/haproxy/ssl/chain.pem no-sslv3 no-tlsv10 描述 LDAPS 服务 选项套接字统计 选项 tcpka 客户端超时10秒 默认后端 ldaps_service_back

后端 ldaps_service_back 服务器 ldap01 10.0.0.3:636 检查 SSL 验证 无 下降 3 上升 5 中间 5000 权重 10 服务器 ldap02 10.0.0.4:636 检查 SSL 验证 无 下降 3 上升 5 中间 5000 权重 10 服务器 ldap03 10.0.0.5:636 检查 ssl 验证 无 下降 3 上升 5 中间 5000 权重 10 服务器 ldap04 10.0.0.6:636 检查 SSL 验证 无 下降 3 上升 5 中间 5000 权重 10

模式 tcp 平衡最小连接数 服务器超时12秒 连接超时10秒 选项 tcpka 选项 tcp-check tcp-检查连接端口 636 ssl tcp-检查发送二进制 300c0201 tcp-检查发送二进制 01 tcp 检查发送二进制 6007 tcp-检查发送二进制 0201 tcp-检查发送二进制 03 tcp 检查发送二进制 04008000 tcp-check 期望二进制 0a0100 tcp-检查发送二进制 30050201034200


所以,我的问题是:我在 haproxy 配置中遗漏了什么吗?我试图设置idle_timelimitnslcd.conf但根本没有帮助。

更多可能有帮助的详细信息:

haproxy:HA-Proxy 版本 1.8.12-1~bpo9+1
openldap:slapd 2.4.44
nslcd:nss-pam-ldapd 0.8.13

答案1

frontend ldap_service_front   
   timeout client        10s

可能会导致空闲断开连接。

如果您为 haproxy 设置 nslcd 的idle_timelimit值小于该值timeout client,那么您就不应该收到这些消息。

相关内容