Как настроить OpenLDAP Proxy / Cache для кэширования всех запросов - PullRequest
3 голосов
/ 03 августа 2010

Хорошо, это новый вопрос OpenLDAP, так что терпите меня.Я не смог найти прямой ответ в вебинете, поэтому мы идем:

Примечание : конечная цель - настроить сервер OpenLDAP в качестве прокси / кэшадля «одиночного» запроса, чтобы получить все результаты в главном LDAP (если вы знакомы с dll DirectoryServices .Net, приложение просто выполняет вызов FindAll () в LDAP).

Iимейте это к точке, где Прокси / Кэш показывает те же результаты, что и мастер (то есть, он передает запросы), однако это, кажется, не кэширует.Я говорю это по двум причинам:

  • Если я обновляю запись в главном LDAP, я сразу же вижу обновленное значение в прокси (используя браузер LDAP, который указывает на URL прокси)), даже до истечения срока действия TTL.
  • Если я завершу работу основного LDAP и сделаю запрос к прокси, я получу исключение соединения.Если я не ошибаюсь, я должен вместо этого получить кэшированный результат (еще раз, TTL не истек).

Вот файл конфигурации OpenLDAP, который я использую для прокси / кэша (в Windows, OpenLDAP v.2.4.23):


database ldap

uri "ldap: // MyPC"

суффикс "dc = local"

rootdn "dc = local"

оверлейный pcache

proxycache bdb 1000 3 250 432000

directory ./cache

index objectclass eq

index cn eq, sub

proxycachequeries 100

proxyattrset 0 cn certificateRevocationList

proxytemplate (objectclass =) 0 600


Несколько вещей, на которые стоит обратить внимание:

  • Я включаю «все»msgstr "атрибутов в записях в главном LDAP как часть proxyattrset.Я понимаю, что это необходимо для кэширования / обслуживания заданного запроса.Поскольку я хотел кэшировать FindAll (), я предполагаю, что это способ сделать это.
  • Интервал проверки согласованности установлен на 5 дней (432000 секунд).Я хочу, чтобы кэш мог обслуживать кэшированные запросы, даже если главный сервер не работал так долго.Также обратите внимание, что TTL установлен на 10 минут (600 секунд) - это потому, что я хочу, чтобы запросы к кэшу обновлялись как минимум каждые 10 минут (если главный сервер работает).

Okна мои вопросы :

  1. Есть ли способ быстро настроить OpenLDAP для кэширования ВСЕХ запросов без необходимости указывать все атрибуты в proxyattrset?
  2. Почемуя получаю ошибку соединения, когда я убиваю основной LDAP и делаю запрос к прокси в TTL?Мои запросы не кэшируются?Если да, что мне не хватает в файле конфигурации для включения кэширования?
...