我有一台运行 Apache2 的 Ubnutu 12.04 服务器,该服务器配置为反向代理。Apache 已进一步配置为通过 LDAP 进行基本身份验证。一切运行正常,只是性能有点滞后。LDAP Auth 指令为:
<Location />
AuthType Basic
AuthBasicProvider ldap
AuthName "Secure Intranet"
AuthLDAPURL ldaps://virt-ldap.mylan.int:636/ou=MyCorp,dc=mylan,dc=int
AuthzLDAPAuthoritative on
AuthLDAPGroupAttribute memberUid
AuthLDAPGroupAttributeIsDN off
Require ldap-group cn=development,ou=groups,ou=MyCorp,dc=mylan,dc=int
</Location>
经过检查,我注意到对于每个请求,Apache 都会返回我的 OpenLDAP 服务器来为特定用户运行搜索/绑定!!!根据代理后面的站点的 HTML,某些请求(例如 JIRA)可能会导致通过 LAN 进行 10 或 15 次搜索/绑定 LDAP 调用。我知道这一点,因为我在浏览时跟踪了 OpenLDAP 日志。哎呀!
根据Apache2 ldap 文档,mod_ldap 应该默认缓存这些内容。考虑到文档可能有误,我在 ldap.conf 中添加了以下指令:
LDAPSharedCacheSize 500000
LDAPCacheEntries 1024
LDAPCacheTTL 600
LDAPOpCacheEntries 1024
LDAPOpCacheTTL 600
但这并没有什么区别。
编辑:
使用服务器上的 lynx 访问https://localhost/ldap-status
返回以下内容:
LDAP Cache Information
Cache Name Entries Avg. Chain Len. Hits Ins/Rem Purges Avg Purge Time
LDAP URL Cache 1 (0% ull) 1.0 282/283 100% 1/0 (none) 0ms
ldaps://virt-ldap.mylan.int:636/ou=MyCorp,dc=mylan,dc=int (Searches) 3 (0% full) 1.0 138/154 90% 6/3 (none) 0ms
ldaps://virt-ldap.mylan.int:636/ou=MyCorp,dc=mylan,dc=int (Compares) 3 (0% full) 1.0 138/148 93% 6/3 (none) 0ms
ldaps://virt-ldap.mylan.int:636/ou=MyCorp,dc=mylan,dc=int (DNCompares) 0 (0% full) 0.0 0/0 100% 0/0 (none) 0ms
因此,看起来缓存正在工作,尽管我不确定这些数字到底意味着什么。我仍然收到大量针对 LDAP 服务器的 LAN 命中。
答案1
我想到两件事:
- 您是否尝试查看缓存状态?如果尝试过,它显示什么?
- 共享内存是否启用?