У меня есть сервер 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 в локальной сети.
На ум приходят две вещи: