Apache mod_ldap / mod_authnz_ldap não está fazendo cache?

2

Eu tenho um servidor Ubnutu 12.04 executando o Apache2 que está configurado como um proxy reverso. O Apache foi configurado para autenticação básica via LDAP. Tudo está funcionando bem, exceto que o desempenho é um pouco lento. As diretivas de autenticação do LDAP são:

    <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>

Após a inspeção, notei que, para cada solicitação, o Apache está voltando para o meu servidor OpenLDAP para executar uma pesquisa / ligação para o usuário em particular !!! Dependendo do HTML do site por trás do proxy, algumas solicitações (por exemplo, o JIRA) podem resultar em 10 ou 15 chamadas LDAP de pesquisa / ligação pela LAN. Eu sei disso porque estou seguindo o log do OpenLDAP enquanto navego. Caramba!

De acordo com a documentação do Apache2 ldap , o mod_ldap deve estar em cache por padrão . Pensando que talvez a documentação estivesse errada, adicionei essas diretivas em ldap.conf:

    LDAPSharedCacheSize 500000
    LDAPCacheEntries 1024
    LDAPCacheTTL 600
    LDAPOpCacheEntries 1024
    LDAPOpCacheTTL 600

Mas não fez diferença.

Editar:

O uso do lynx no servidor para acessar https://localhost/ldap-status retornou o seguinte:

    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

Parece que o cache está funcionando, embora eu não saiba exatamente o que esses números significam. Ainda estou recebendo toneladas de acessos de LAN contra o servidor LDAP.

    
por hdave 28.03.2013 / 14:17

1 resposta

1

Duas coisas vêm à mente:

  • Já tentou ver o estado da cache? Se sim, o que isso diz?
  • A memória compartilhada está ativada?
por 28.03.2013 / 14:35