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