HTTP .htpasswd protege o subdomínio no Nginx recursivamente

2

Eu quero proteger meu subdomínio de desenvolvedor com senha (dev.example.com) e deixar o domínio principal publicamente disponível.

Eu quero fazer isso de forma recursiva, para que qualquer arquivo ou pasta no subdomínio sempre solicite um login.

No arquivo de configuração do Nginx, adicionei o seguinte ao meu bloco de servidores dev.example.com (observe que eu tenho blocos de servidores separados para o principal e o subdomínio):

location ^~ / {
    auth_basic "Administrator Login";
    auth_basic_user_file /home/path/to/.htpasswd;
}

A partir da pesquisa em SF, fiquei com a impressão de que o identificador ^~ torna a proteção por senha recursiva, mas isso não acontece.

Enquanto o dev.example.com solicita especificamente um login, dev.example.com/pasta/não.

O que estou fazendo de errado?

    
por Trace DeCoy 12.01.2017 / 09:51

2 respostas

2

Para proteger todo o subdomínio, as declarações devem aparecer no bloco existente server :

server {
    server_name dev.example.com;
    auth_basic "Administrator Login";
    auth_basic_user_file /home/path/to/.htpasswd;
    ...
}
    
por 12.01.2017 / 11:06
0

Isso deve funcionar. E certifique-se de reiniciar o nginx após concluir a edição.

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www/html/subdomain;
    index index.php index.html index.html
    server_name dev.example.com;;

    location ^~ / {
        auth_basic "Restricted";
        auth_basic_user_file /etc/nginx/.htpasswd;
    }

}
    
por 12.01.2017 / 22:30