Como Instalar, Configurar e Otimizar o Nginx no Ubuntu: Guia Completo para Iniciantes

1. Introdução

Muitos usuários têm interesse em usar o Nginx no Ubuntu, mas iniciantes podem não saber por onde começar. Este artigo oferece uma explicação passo a passo, fácil de entender – desde a instalação do Nginx no Ubuntu até a configuração e gerenciamento – mesmo que você não tenha experiência prévia.

O que é Nginx?

Nginx (Engine‑X) é um servidor HTTP de alto desempenho e um servidor proxy reverso. Devido à sua arquitetura leve e flexível, é amplamente utilizado em servidores web e aplicações ao redor do mundo. Sua estrutura é particularmente adequada para lidar com ambientes de alto tráfego.

Benefícios de usar Nginx no Ubuntu

Ubuntu é uma distribuição Linux popular com excelente compatibilidade com o Nginx. Como o Ubuntu utiliza o sistema de gerenciamento de pacotes APT, a instalação e as atualizações são simples, e você pode contar com forte estabilidade e segurança.

Depois de ler este artigo, você entenderá:

  • Como instalar o Nginx no Ubuntu
  • Procedimentos básicos de configuração e gerenciamento
  • Técnicas de otimização de desempenho e solução de problemas

Agora, vamos começar.

2. Instalando o Nginx no Ubuntu

Para executar o Nginx no Ubuntu, é necessário instalá‑lo corretamente. Esta seção explica as etapas de instalação de forma clara e simples.

Verificar pacotes necessários

Antes de instalar o Nginx, certifique‑se de que seu sistema está atualizado. Execute os seguintes comandos:

sudo apt update
sudo apt upgrade

Instalar o Nginx

Para instalar o Nginx, digite o comando a seguir:

sudo apt install nginx

Este comando baixa e instala o Nginx diretamente do repositório APT do Ubuntu.

Verificar a instalação

Execute o comando abaixo para conferir se o Nginx foi instalado corretamente:

sudo systemctl status nginx

Se o status mostrar active (running), a instalação foi bem‑sucedida.

Configurar o firewall

O Ubuntu inclui o UFW (Uncomplicated Firewall), que pode ser usado para permitir o tráfego do Nginx.

sudo ufw allow 'Nginx Full'
sudo ufw enable

O Nginx agora está pronto para se comunicar nas portas 80 (HTTP) e 443 (HTTPS).

3. Configuração básica do Nginx no Ubuntu

Instalar o Nginx sozinho não basta – é preciso configurá‑lo adequadamente para utilizá‑lo de forma eficaz.

Localização e estrutura dos arquivos de configuração

O Nginx utiliza os seguintes arquivos de configuração:

  • Arquivo de configuração principal: /etc/nginx/nginx.conf
  • Arquivos de configuração específicos de sites: localizados no diretório /etc/nginx/sites-available/

Normalmente, você cria arquivos de configuração de host virtual no diretório sites-available e, em seguida, cria links simbólicos no diretório sites-enabled para ativá‑los.

Configurando um host virtual

Hosts virtuais permitem que um único servidor gerencie múltiplos domínios e projetos. O exemplo a seguir configura o example.com:

sudo nano /etc/nginx/sites-available/example.com

Insira a configuração abaixo:

server {
    listen 80;
    server_name example.com www.example.com;

    root /var/www/example.com/html;
    index index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }
}

Salve o arquivo e, então, habilite a configuração:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

Configurando SSL/TLS

Para habilitar comunicação segura, configure certificados SSL/TLS. Você pode obter certificados gratuitos usando o Let’s Encrypt.

Primeiro, instale o certbot:

sudo apt install certbot python3-certbot-nginx

Em seguida, solicite o certificado e aplique as configurações automaticamente:

sudo certbot --nginx -d example.com -d www.example.com

Certifique‑se de que a renovação automática do certificado esteja ativada para evitar a expiração.

4. Iniciando e gerenciando o Nginx

Depois que o Nginx estiver instalado e configurado, você precisará aprender a iniciá‑lo, pará‑lo, recarregá‑lo e solucionar problemas. Esta seção explica os comandos administrativos essenciais.

Comandos básicos do Nginx

No Ubuntu, use o comando systemctl para gerenciar o Nginx:

  1. Iniciar Nginx
    sudo systemctl start nginx
    
  1. Parar Nginx
    sudo systemctl stop nginx
    
  1. Reiniciar Nginx Use quando alterações de configuração importantes são feitas.
    sudo systemctl restart nginx
    
  1. Recarregar Nginx Aplique alterações de configuração sem reiniciar.
    sudo systemctl reload nginx
    
  1. Verificar o Status do Nginx
    sudo systemctl status nginx
    

Habilitar Inicialização Automática

Para iniciar o Nginx automaticamente após a reinicialização do sistema:

  1. Habilitar inicialização automática
    sudo systemctl enable nginx
    
  1. Desabilitar inicialização automática
    sudo systemctl disable nginx
    

Verificação de Logs e Solução de Problemas

Se o Nginx não funcionar como esperado, verifique os logs:

  1. Log de Erro
    sudo tail -f /var/log/nginx/error.log
    
  1. Log de Acesso
    sudo tail -f /var/log/nginx/access.log
    

Problemas Comuns e Soluções

  1. Nginx não inicia
  • Causa: Erros no arquivo de configuração
  • Solução: bash sudo nginx -t Verifique erros de sintaxe e corrija-os.
  1. Alterações não são aplicadas
  • Causa: Nginx não foi recarregado
  • Solução: Execute sudo systemctl reload nginx após as alterações.
  1. Portas não abertas
  • Causa: Configurações de firewall
  • Solução: bash sudo ufw allow 'Nginx Full'

5. Configurações de Firewall do Nginx e Reforço de Segurança

A segurança é fundamental ao operar o Nginx. Esta seção explica como configurar o UFW e reforçar a segurança do Nginx.

Abrindo Portas com UFW

O UFW vem instalado por padrão no Ubuntu. Para habilitar a comunicação do Nginx, abra as portas necessárias:

  1. Verificar o status do UFW
    sudo ufw status
    
  1. Aplicar regras do Nginx
    sudo ufw allow 'Nginx Full'
    
  1. Habilitar UFW
    sudo ufw enable
    

Aprimoramentos de Segurança Adicionais

  1. Desativar métodos HTTP desnecessários
    if ($request_method !~ ^(GET|POST|HEAD)$) {
        return 444;
    }
    
  1. Desativar listagem de diretórios
    autoindex off;
    
  1. Reforçar SSL/TLS
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers HIGH:!aNULL:!MD5;
    

6. Ajuste de Desempenho e Solução de Problemas do Nginx

O Nginx é conhecido por seu desempenho, mas um ajuste adequado pode melhorá-lo ainda mais. Esta seção explica como otimizar recursos e resolver problemas comuns.

Ajuste de Desempenho

1. Configurar Processos de Trabalho

Edite /etc/nginx/nginx.conf e otimize o número de processos de trabalho:

worker_processes auto;

2. Aumentar Conexões de Trabalho

worker_connections 1024;

3. Habilitar HTTP/2

listen 443 ssl http2;
sudo systemctl reload nginx

4. Habilitar Compressão

gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

5. Configurar Cache

location ~* \.(jpg|jpeg|png|gif|ico|css|js|woff|woff2|ttf|svg)$ {
    expires 30d;
    access_log off;
}

Problemas Comuns e Soluções

1. Solicitações lentas sob alta carga

  • Causa: processos de trabalho ou configurações de conexão insuficientes
  • Solução: ajuste os parâmetros de trabalho ou introduza balanceamento de carga

2. Erro 403 Forbidden

  • Causa: caminho root incorreto ou permissões inadequadas
  • Solução:
  • Verifique a diretiva root e corrija as permissões usando:
  • bash sudo chmod -R 755 /var/www/example.com/html sudo chown -R www-data:www-data /var/www/example.com/html

3. Tempo de Espera do Servidor

  • Causa: o processamento da requisição do cliente leva muito tempo
  • Solução:
    proxy_read_timeout 300;
    proxy_connect_timeout 300;
    proxy_send_timeout 300;
    

4. Erros ao Reiniciar

  • Causa: problemas de sintaxe na configuração
  • Solução:
    sudo nginx -t
    

7. Resumo e Próximos Passos

Este artigo explicou como instalar, configurar e gerenciar o Nginx no Ubuntu. Vamos revisar o que você aprendeu e identificar possíveis próximos passos.

Revisão do Artigo

1. Instalando Nginx no Ubuntu

  • Preparou os pacotes necessários e aprendeu como instalar o Nginx usando APT
  • Configurou o firewall (UFW) para permitir tráfego do Nginx

2. Configuração Básica

  • Aprendeu a localização dos arquivos, a configuração de host virtual e a configuração SSL/TLS

3. Operações de Gerenciamento

  • Dominou os comandos de iniciar, parar, reiniciar, recarregar e investigar logs

4. Firewall e Segurança

  • Abriu as portas necessárias usando UFW e desativou métodos HTTP desnecessários

5. Otimização de Desempenho e Solução de Problemas

  • Otimizou processos de trabalho, habilitou HTTP/2, configurou cache e resolveu problemas comuns

Próximos Passos

Agora que você entende as etapas fundamentais de instalação e configuração do Nginx no Ubuntu, considere avançar ainda mais:

  1. Aprender configuração avançada do Nginx
  • Estudar balanceamento de carga e recursos de proxy reverso
  • Experimentar módulos adicionais, como o módulo Nginx RTMP
  1. Aprimorar a segurança
  • Considerar a implementação de um Web Application Firewall (WAF)
  1. Introduzir automação
  • Usar Ansible ou Docker para automatizar a configuração e a implantação
  1. Utilizar ferramentas de monitoramento e otimização
  • Implementar Prometheus ou Grafana para visualizar e monitorar o desempenho

Considerações Finais

O Nginx é um servidor web rápido e flexível, capaz de suportar uma ampla variedade de casos de uso quando configurado corretamente. Aplique o que aprendeu aqui em projetos reais e continue explorando recursos adicionais através da documentação oficial do Nginx e dos recursos da comunidade.

Espero que este guia ajude você a gerenciar seu servidor web de forma mais eficiente!

侍エンジニア塾