Apache mod_ldap / mod_authnz_ldap 没有缓存?

Apache mod_ldap / mod_authnz_ldap 没有缓存?

我有一台运行 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

我想到两件事:

  • 您是否尝试查看缓存状态?如果尝试过,它显示什么?
  • 共享内存是否启用?

相关内容