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

时间:2010-08-03 16:41:11

标签: ldap directoryservices openldap

好的,这是一个OpenLDAP新问题,请耐心等待。我还没能在网络上找到一个直接的答案,所以我们走了:

注意:最终目标是将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 = local”

     

rootdn“dc = local”

     

overlay pcache

     

proxycache bdb 1000 3 250 432000

     

目录./cache

     

index objectclass eq

     

index cn eq,sub

     

proxycachequeries 100

     

proxyattrset 0 cn certificateRevocationList

     

proxytemplate(objectclass =)0 600


值得注意的一些事情:

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

好的,关于问题

  1. 有没有办法快速配置OpenLDAP来缓存所有查询而无需在proxyattrset中指定所有属性?
  2. 当我终止主LDAP并在TTL内向代理查询时,为什么会出现连接错误?我的查询没有被缓存吗?如果是这样,我在配置文件中缺少什么来启用缓存?

0 个答案:

没有答案