nginx auth_basic para endereço com porta específica

1

Eu tenho um serviço rodando na porta 3000. Eu apontei com sucesso uma URL para o endereço usando a seguinte diretiva nginx:

server {
  listen   80;
  server_name notes.mydomain.foo;

  location / {
    proxy_pass http://localhost:3000;
  }  
  auth_basic "Get lost!";
  auth_basic_user_file /etc/nginx/.htpasswd;
}

Ou seja, quando alguém acessa o link , o nginx realiza seu trabalho de proxy reverso da solicitação para xxx.xxx.xxx .xxx: 3000 e apresenta ao usuário uma solicitação básica de autenticação HTTP.

No entanto, se eu apontar o navegador diretamente para xxx.xxx.xxx.xxx:3000, o auth_basic será ignorado e qualquer pessoa poderá acessar o conteúdo que deve ser restrito.

Como posso ativar o auth_basic no URL público e nos endereços ip: port?

    
por SeuMenezes 26.08.2016 / 04:34

1 resposta

1

Se você visitar seu site em

link

você verá a resposta auth_basic.

O serviço em execução na porta 3000 deve ser reconfigurado para não ficar visível publicamente. Em vez disso, deve aceitar apenas conexões do nginx. Essa é uma abordagem padrão com proxies.

Para fazer isso, deve haver uma maneira na configuração do serviço para especificar o endereço IP de escuta, bem como a porta (3000). Altere ou adicione à configuração para que o endereço IP de escuta seja 127.0.0.1 e reinicie o serviço.

    
por 26.08.2016 / 05:19