Problemas com a isenção nginx basic_auth

1

Estou tentando isentar um local de basic_auth, enquanto o restante do site exige isso. Lendo para cima, a minha configuração deve funcionar, mas por algum motivo ainda retorna 401 para / asd / qwe /.

server {
    server_name domain.com www.domain.com;

    root /var/www/domains/domain.com/htdocs/public;

    index index.php index.htm;

    location / {
        location ~ \.php$ {
            include /etc/nginx/fastcgi_params;
            fastcgi_pass unix:/var/run/php5-fpm.domain.com.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME /var/www/domains/domain.com/htdocs/public$fastcgi_script_name;
        }

      auth_basic "Restricted";
      auth_basic_user_file /var/www/domains/htpasswd/domain.com.htpasswd;

    }

    location /asd/qwe/ {
          auth_basic off;
          allow all;

        location ~ \.php$ {
            include /etc/nginx/fastcgi_params;
            fastcgi_pass unix:/var/run/php5-fpm.domain.com.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME /var/www/domains/domain.com/htdocs/public$fastcgi_script_name;
        }
    }

}
    
por user2108948 05.09.2013 / 23:21

2 respostas

1

A Finnaly encontrou uma solução para isso:

server {

server_name domain.com www.domain.com;

root /var/www/domains/domain.com/htdocs/public;

access_log /var/log/nginx/domains/domain.com/access.log;

error_log /var/log/nginx/domains/domain.com/error.log; index index.php index.htm;

  auth_basic_user_file /var/www/domains/htpasswd/domain.com.htpasswd;

location ~ /.svn/ {
    deny all;
}
location ~ /.htaccess {
    deny all;
}

location ^~ /psp/callback/ {
      auth_basic off;

      include /etc/nginx/fastcgi_params;
      fastcgi_pass unix:/var/run/php5-fpm.domain.com.sock;
      fastcgi_index index.php;
      fastcgi_param SCRIPT_FILENAME /var/www/domains/domain.com/htdocs/public$fastcgi_script_name;
 }

location / {
  auth_basic "Restricted";
}

    location ~ \.php$ {
        include /etc/nginx/fastcgi_params;
        fastcgi_pass unix:/var/run/php5-fpm.domain.com.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME /var/www/domains/domain.com/htdocs/public$fastcgi_script_name;
      }

# Zend Framework rewrite
if (!-e $request_filename) {
    set $zfRewrite 1;
}
if ($zfRewrite = 1) {
    rewrite ^.*$ /index.php last;
}

}

    
por 06.09.2013 / 09:50
0

A menos que você esteja usando correspondências literais (o = prefixo de local), o processamento será interrompido na primeira correspondência. Coloque seu bloco / asd / qwe acima do bloco / e ele deve funcionar.

Para mais informações, consulte a documentação do nginx na diretiva location:

link

    
por 06.09.2013 / 01:07