Senha Nginx Proteger o número da porta inteira 8081

1

Estou tentando proteger por senha uma porta inteira no meu site-- link e link

Eu tentei editar o /etc/nginx/sites-enabled/domain.com.vhost adicionando o seguinte no bloco de servidores sem sucesso (o que eu obtive de este link , exceto que o link diz respeito à proteção de diretórios ao invés de portas):

location ^~ :8081 {
auth_basic            "Restricted Area";
auth_basic_user_file  conf/htpasswd;
}

Eu também tentei "location: 8081", mas isso também não funcionou.

Como posso proteger a porta 8081 com senha (ou qualquer outra porta que eu deseje)

Se isso faz alguma diferença, estou usando o Ubuntu 14.04.1 LTS com o Nginx 1.4.6.

Obrigado.

[EDITAR]

Ao implementar a solução de Nathan, ao acessar o link (SSL), é exibida a solicitação de um nome de usuário e senha, mas me dá uma página "500 Internal Server Error". Veja o que mostra no log de erros do Nginx:

[crit] 3390#0: *154 open() "/etc/nginx/conf/htpasswd" failed (13: Permission denied), client: 152.35.52.108, server: domain.com, request: "GET /phpmyadmin/ HTTP/1.1", host: "domain.com:8081"

Ao acessar o link (não-SSL), ele me envia "400 Bad Request A solicitação HTTP simples foi enviada para Porta HTTPS ". Nada registra isso no log de erros; Em vez disso, o seguinte aparece no log de acesso Nginx:

"GET /phpmyadmin/ HTTP/1.1" 40.1" 400 279 "-" "[user agent]"
    
por Pamela 15.08.2014 / 17:32

1 resposta

3

Suponho que você tenha um bloco server { separado para essa porta ... para proteger o diretório / desse bloco de servidor:

location / {
auth_basic            "Restricted Area";
auth_basic_user_file  conf/htpasswd;
}

Então:

server {
listen 8081;
server_name whateveryouwant;
root /path/to/root/folder;
location / {
    auth_basic            "Restricted Area";
    auth_basic_user_file  conf/htpasswd;
    }
}

Eu não testei isso, mas é assim que deve ser.

    
por 15.08.2014 / 17:49