Nginx map指令始终使用带有http param的“default”

时间:2015-05-19 19:46:30

标签: nginx

我正在使用Nginx map指令来检索http param的值并将其放入另一个变量中,该变量将用于与ldap服务器进行基本身份验证(使用nginx-auth-ldap)。 问题是,根据我的调试日志,我的地图总是选择默认值。 这是我的配置:

http {
include       mime.types;
default_type  application/octet-stream;
sendfile        on;

map $args $groupe_ldap { 
default "default_group";
include /opt/nginx/appli.conf;
}

ldap_server my_ldap_server {
url ldap://somehost:someport/ou=xxx,dc=yyy,....;
binddn "...";
binddn_passwd "...";
require group "cn=$groupe_ldap,...";
group_attribute member; 
group_attribute_is_dn on;
require valid_user;
}

server {
    error_log /opt/nginx/log/debug.log debug;
    listen       8243;
    server_name  myhost;
    more_clear_input_headers 'X-Forwarded-For';
    auth_ldap "Forbidden";
    auth_ldap_servers my_ldap_server;

 if ($request_method !~ ^(GET|OPTIONS|POST)$ ) {
      return 403;
  break;
    }
location ~ ^(/monitor(.*)) {
    if ($arg_appli = "") {
       return 403;
       break;}

rewrite ^/monitor.* /$arg_appli?;
    proxy_set_header Host myhost:myport;
    root html;
    index index.html;
    break;
    }
error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
}}

我的appli.conf包含: appli=1 ESB_SUPERADMIN;

问题是,在使用此网址时,我总是会使用default_groupe而不是ESB_SUPERADMIN:http://myhost:myport/monitor?appli=1

我的配置有问题吗?

感谢您的帮助。

0 个答案:

没有答案