Apache2和冗余的LDAPconfiguration问题

根据说明,我已经configuration了多个LDAP源以实现冗余。 我发现configuration有一些问题。

  1. 如果ldap服务不在指定的ldap服务器上工作,而不是转到列表中的下一个服务器,那么工作不会通过列表中的其他条目进行。

  2. 如果ldap服务器closures而不能正常工作,则会引发5xx内部服务器错误,而不会通过列表中的其他条目进行处理。

这些Apache的错误,或者我应该包括更多的指令来正确configuration冗余?

有问题的http.conf部分:

<AuthnProviderAlias ldap ldap1> AuthBasicProvider ldap AuthLDAPURL "ldap://ldap1.server.com:389/dc=server,dc=com?sAMAccountName?sub?(objectClass=*)" AuthLDAPBindDN "CN=matcher,OU=Application Accounts,dc=server,dc=com" AuthLDAPBindPassword "SECRET" </AuthnProviderAlias> <AuthnProviderAlias ldap ldap2> AuthBasicProvider ldap AuthLDAPURL "ldap://ldap2.server.com:389/dc=server,dc=com?sAMAccountName?sub?(objectClass=*)" AuthLDAPBindDN "CN=matcher,OU=Application Accounts,dc=server,dc=com" AuthLDAPBindPassword "SECRET" </AuthnProviderAlias> <AuthnProviderAlias ldap ldap3> AuthBasicProvider ldap AuthLDAPURL "ldap://ldap3.server.com:389/dc=server,dc=com?sAMAccountName?sub?(objectClass=*)" AuthLDAPBindDN "CN=matcher,OU=Application Accounts,dc=server,dc=com" AuthLDAPBindPassword "SECRET" </AuthnProviderAlias> <AuthnProviderAlias file file1> AuthUserFile /etc/mdpctest/htpasswd.users </AuthnProviderAlias> <Directory /srv/www/htdocs/mdptest> Order deny,allow Deny from All AuthName "Request Access" AuthType Basic AuthBasicProvider file1 ldap1 ldap2 ldap3 AuthzLDAPAuthoritative on require valid-user Satisfy any </Directory> 

Apache版本信息是:

  Server version: Apache/2.2.12 (Linux/SUSE) Server built: Nov 30 2011 17:54:13 Server's Module Magic Number: 20051115:23 Server loaded: APR 1.3.3, APR-Util 1.3.4 Compiled using: APR 1.3.3, APR-Util 1.3.4 Architecture: 64-bit Server MPM: Prefork threaded: no forked: yes (variable process count) Server compiled with.... -D APACHE_MPM_DIR="server/mpm/prefork" -D APR_HAS_SENDFILE -D APR_HAS_MMAP -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled) -D APR_USE_SYSVSEM_SERIALIZE -D APR_USE_PTHREAD_SERIALIZE -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT -D APR_HAS_OTHER_CHILD -D AP_HAVE_RELIABLE_PIPED_LOGS -D DYNAMIC_MODULE_LIMIT=128 -D HTTPD_ROOT="/srv/www" -D SUEXEC_BIN="/usr/sbin/suexec2" -D DEFAULT_PIDLOG="/var/run/httpd2.pid" -D DEFAULT_SCOREBOARD="logs/apache_runtime_status" -D DEFAULT_LOCKFILE="/var/run/accept.lock" -D DEFAULT_ERRORLOG="/var/log/apache2/error_log" -D AP_TYPES_CONFIG_FILE="/etc/apache2/mime.types" -D SERVER_CONFIG_FILE="/etc/apache2/httpd.conf" 

那么这对我有效:

 AuthLDAPURL ldap://ldap.company.com:389,ldapbackup.company.com:1389/ou=Users,dc=company,dc=com?uid 

我不需要任何引号和分隔服务器与空间不起作用。 (阿帕奇/ 2.2.14)

答案是在LDAPconfigurationlogging中指定多个来源。

请注意,将AuthLDAPURL中的主机规范分隔开的空间以及指令用引号引起来的事实:

有问题的http.conf部分:

  <AuthnProviderAlias ldap ldap1> AuthBasicProvider ldap AuthLDAPURL "ldap://ldap1.server.com:389 ldap2.server.com:389 ldap3.server.com:389/dc=server,dc=com?sAMAccountName?sub?(objectClass=*)" AuthLDAPBindDN "CN=matcher,OU=Application Accounts,dc=server,dc=com" AuthLDAPBindPassword "SECRET" </AuthnProviderAlias> <AuthnProviderAlias file file1> AuthUserFile /etc/mdpctest/htpasswd.users </AuthnProviderAlias> <Directory /srv/www/htdocs/mdptest> Order deny,allow Deny from All AuthName "Request Access" AuthType Basic AuthBasicProvider file1 ldap1 AuthzLDAPAuthoritative on require valid-user Satisfy any </Directory>