如何配置OpenLDAP代理/缓存以缓存所有查询

如何配置OpenLDAP代理/缓存以缓存所有查询,ldap,directoryservices,openldap,Ldap,Directoryservices,Openldap,好的,这是一个新问题,请耐心听我说。我无法在webinets上找到一个直接的答案,因此我们开始: 注意:最终目标是将OpenLDAP服务器设置为“单个”查询的代理/缓存,以在主LDAP中获取所有结果(如果您熟悉.Net的DirectoryServices dll,则应用程序仅对LDAP进行FindAll()调用) 代理/缓存显示的结果与主服务器相同(即代理查询),但它似乎不是缓存。我这样说有两个原因: 如果我对主LDAP中的条目进行更新,我会立即在代理中看到更新的值(使用指向代理URL的LDA

好的,这是一个新问题,请耐心听我说。我无法在webinets上找到一个直接的答案,因此我们开始:

注意:最终目标是将OpenLDAP服务器设置为“单个”查询的代理/缓存,以在主LDAP中获取所有结果(如果您熟悉.Net的DirectoryServices dll,则应用程序仅对LDAP进行FindAll()调用)

代理/缓存显示的结果与主服务器相同(即代理查询),但它似乎不是缓存。我这样说有两个原因:

  • 如果我对主LDAP中的条目进行更新,我会立即在代理中看到更新的值(使用指向代理URL的LDAP浏览器),甚至在TTL过期之前
  • 如果关闭主LDAP并对代理进行查询,则会出现连接异常。如果我没有弄错的话,我应该取而代之的是一个缓存结果(再一次,TTL还没有过期)
下面是我用于代理/缓存的OpenLDAP配置文件(在Windows上,OpenLDAP v.2.4.23):


数据库ldap

uri“ldap://MyPC"

后缀“dc=本地”

rootdn“dc=local”

重叠pcache

proxycache bdb 1000 3 250 432000

目录./cache

索引对象类eq

索引cn eq,sub

proxycachequeries 100

proxyattrset 0 cn证书职业列表

proxytemplate(objectclass=)0 600


有几件事值得注意:

  • 我将在主LDAP的条目中包含“所有”属性,作为proxyattrset的一部分。我理解这对于缓存/服务预期查询是必要的。因为我想缓存一个FindAll(),所以我想这就是实现它的方法
  • 一致性检查间隔设置为5天(432000秒)。我希望缓存能够为缓存查询提供服务,即使主服务器已经关闭了那么长时间。还要注意,TTL设置为10分钟(600秒)-这是因为我希望缓存查询至少每10分钟刷新一次(如果主服务器已启动)
好的,关于我的问题

  • 有没有一种方法可以快速配置OpenLDAP以缓存所有查询,而不必指定proxyattrset中的所有属性
  • 当我杀死主LDAP并在TTL中查询代理时,为什么会出现连接错误?是否未缓存我的查询?如果是这样,我在配置文件中缺少什么来启用缓存

  • 写得好的问题+1你能分享你在这方面的进展吗?