Назад | Перейти на главную страницу

Apache mod_ldap / mod_authnz_ldap не кешируется?

У меня есть сервер Ubnutu 12.04, на котором запущен Apache2, настроенный как обратный прокси. 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) могут привести к 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 в локальной сети.

На ум приходят две вещи:

  • Вы пробовали посмотреть статус кеша. Если да, то что там написано?
  • Разделяемая память включена?