编译nginx-auth-ldap模块需要ldap.h头文件,所以需要先安装ldap库

yum -y install openldap-devel

一、下载模块包 git clone https://github.com/kvspb/nginx-auth-ldap.git 二、nginx编译安装的时候,把模块编译进去。 ./configure --add-module=path_to_http_auth_ldap_module make install

如果报错openssl版本低,则升级openssl版本 如果报pragma GCC diagnostic 选项未知 则 gcc 4.4无法解释'#pragma GCC诊断警告“-Wcpp”'

修复如下。

// make sure manual warnings don't get escalated to errors #ifdef clang #pragma clang diagnostic warning "-W#warnings" #else #ifdef GNUC #if GNUC > 4 #pragma GCC diagnostic warning "-Wcpp" #endif #endif #endif // TODO: do the same stuff for MSVC and/or other compiler 加一个if判断,就行了

二.配置ldap认证

http {

    ldap_server openldap {

    url ldap://192.168.192.20:389/dc=example,dc=com?uid?sub?(&(objectClass=account));

    binddn "cn=Manager,dc=example,dc=com";

    binddn_passwd "secret";

    group_attribute memberuid;

    group_attribute_is_dn on;

    require valid_user;

  }

}

进入conf.d 设置:

server {

   location /status {

        stub_status on;

        access_log off;

        auth_ldap "Restricted Space";

        auth_ldap_servers openldap;

    }

}

在nginx主配置文件的http标签中添加如下代码 group_attribute People 这个是验证的时候,访问哪个组 http { ldap_server test2 { url ldap://172.16.6.13:389/DC=ptmind,DC=com?cn?sub?(objectClass=person); binddn "cn=ldap,dc=ptmind,dc=com"; binddn_passwd 'xxxxxxxxx'; group_attribute People; group_attribute_is_dn on; require valid_user; } }