Ldap
帶有 haproxy 的 openldap -(ldap_result() 失敗:無法聯繫 LDAP 伺服器)
我在通過 haproxy 代理的 openldap 遇到問題。身份驗證在 CentOS (7.5.1804) 和 Debian (9.4) 上執行良好。唯一的問題是我在 syslog 和 authlog 中遇到錯誤:
中央作業系統:
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 pidfile /var/run/haproxy.pid chroot /var/lib/haproxy 麥克康8192 使用者代理 組代理 守護程序 stats socket / var / lib / haproxy / stats tune.ssl.default-dh-param 2048 前端 ldap_service_front 模式 tcp 綁定 10.0.0.2:389 描述 LDAP 服務 選項套接字統計 選項 tcpka 客戶端超時 10s default_backend 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 伺服器超時 12s 超時連接10s 選項 tcpka 選項 tcp 檢查 tcp-check 連接埠 389 tcp-check 發送二進制 300c0201 tcp-check 發送二進制 01 tcp 檢查發送二進制 6007 tcp 檢查發送二進制 0201 tcp-check 發送二進制 03 tcp-check 發送二進制 04008000 tcp-check 期望二進制 0a0100 tcp-check 發送二進制 30050201034200 前端 ldaps_service_front 模式 tcp 綁定 10.0.0.2:636 ssl crt /etc/haproxy/ssl/chain.pem no-sslv3 no-tlsv10 描述 LDAPS 服務 選項套接字統計 選項 tcpka 客戶端超時 10s default_backend 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 平衡最小連接 伺服器超時 12s 超時連接10s 選項 tcpka 選項 tcp 檢查 tcp-check 連接埠 636 ssl tcp-check 發送二進制 300c0201 tcp-check 發送二進制 01 tcp 檢查發送二進制 6007 tcp 檢查發送二進制 0201 tcp-check 發送二進制 03 tcp-check 發送二進制 04008000 tcp-check 期望二進制 0a0100 tcp-check 發送二進制 30050201034200
所以,我的問題是:我是否錯過了 haproxy 配置中的某些內容?我試圖設置
idle_timelimit
innslcd.conf
,但它根本沒有幫助。更多可能有幫助的細節:
haproxy:HA-Proxy 版本 1.8.12-1~bpo9+1 openldap:slapd 2.4.44 nslcd:nss-pam-ldapd 0.8.13
frontend ldap_service_front timeout client 10s
可能會導致空閒斷開連接。
如果您將 nslcd 設置為
idle_timelimit
小於timeout client
haproxy,則不應收到這些消息。