Instalação do Nginx no Ubuntu com Autenticação

O Nginx é um servidor web amplamente utilizado em ambientes Linux. Entender como configurá-lo é fundamental.

Instalação

$ sudo apt-get install nginx

Operações de Serviço do Nginx

  • Iniciar: ``` $ sudo service nginx start
  • Verificar Status: ``` $ sudo service nginx status
  • Parar: ``` $ sudo service nginx stop
  • Reiniciar: ``` $ sudo service nginx restart
    
    

Para confirmar o estado do serviço após uma operação, use:

$ sudo service nginx status

Alternativas para verificar se o Nginx está ativo:

  • Procurar pelo processo do Nginx: ``` $ ps -aux | grep nginx
  • Acesssar diretamente pelo navegdaor:
    • Página padrão quando não iniciado
    • Página padrão após iniciar (servidor web vazio)

Caminhos de Arquivos Importantes

  • Executável principal: /usr/sbin/nginx
  • Arquivo de configuração global: /etc/nginx/nginx.conf
  • Configuração do site padrão: /etc/nginx/sites-enabled/default
  • Log de erros: /var/log/nginx/error.log
  • Log de acesso: /var/log/nginx/access.log

Os caminhos dos logs podem ser modfiicados no arquivo /etc/nginx/nginx.conf:

access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;

Solução de Problemas

Se ocorrer um erro ao iniciar o Nginx:

Failed to start A high performance

Verifique a configuração padrão do servidor:

$ grep -R default_server /etc/nginx

Caso necessário, edite o arquivo /etc/nginx/sites-enabled/default e comente as linhas referentes ao servidor padrão:

$ sudo vim /etc/nginx/sites-enabled/default

Instalação de Dependências

Para autenticação HTTP básica, instale o pacote apache2-utils:

$ sudo apt-get install apache2-utils

Habilitando Autenticação no Nginx

Utilize o módulo ngx_http_auth_basic_module do Nginx para exigir credenciais de login.

Criando Usuários e Senhas

Crie um arquivo de senhas com htpasswd:

$ sudo htpasswd -c /etc/nginx/.passwd usuario
New password:
Re-type new password:
Adding password for user usuario

Verifique o conteúdo do arquivo:

$ cat /etc/nginx/.passwd
usuario:$apr1$bj22mciQ$4Rq6U1EnZPyxmDj5X8v1d/

Configurando o Nginx

Edite o arquivo de configuração do servidor:

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

    root         '<diret>';

    auth_basic "Insira suas credenciais";
    auth_basic_user_file /etc/nginx/.passwd;

    location / {
        gzip on;
        gzip_types      text/plain application/xml application/json;
        gunzip on;
        autoindex on;
    }
}</diret>

Teste a configuração e reinicie o Nginx:

$ sudo nginx -t
$ sudo systemctl reload nginx

Comandos htpasswd

Opções do htpasswd:

  • -c: Cria um novo arquivo de senhas
  • -n: Exibe a senha criptografada sem atualizar o arquivo
  • -m: Usa MD5 para criptografia (padrão)
  • -d: Usa CRYPT para criptografia
  • -p: Não criptografa a senha
  • -s: Usa SHA para criptografia
  • -b: Fornece o nome de usuário e senha na linha de comando
  • -D: Remove um usuário

Exemplos de uso:

  • Criar um novo arquivo de senhas com um usuário: ``` $ sudo htpasswd -bc /etc/nginx/.passwd usuario senha
  • Adicionar um novo usuário ao arquivo existente: ``` $ sudo htpasswd -b /etc/nginx/.passwd usuario2 senha2
  • Exibir a senha criptografada sem salvar: ``` $ sudo htpasswd -nb usuario senha
  • Remover um usuário: ``` $ sudo htpasswd -D /etc/nginx/.passwd usuario2
  • Alterar a senha de um usuário: ``` $ sudo htpasswd -D /etc/nginx/.passwd usuario $ sudo htpasswd -b /etc/nginx/.passwd usuario nova_senha

Tags: nginx Ubuntu autenticacao htpasswd

Publicado em 9-11 17:07