Page cover image

Estrutura de pastas

Ao trabalhar com o Nginx, é fundamental compreender a estrutura de suas pastas principais e como elas se encaixam na configuração e operação do servidor. O diretório /var/www é comumente utilizado para armazenar os arquivos de conteúdo web, como páginas HTML, scripts JavaScript e folhas de estilo CSS. Esta é a localização padrão onde o Nginx espera encontrar os arquivos que serão servidos aos visitantes do seu site, permitindo uma organização clara e acessível dos recursos web. Por outro lado, o diretório /etc/nginx é o coração da configuração do Nginx, contendo todos os arquivos de configuração necessários para controlar o comportamento do servidor. Isso inclui o arquivo de configuração principal (nginx.conf) e diretórios para configurações específicas de sites, conhecidos como "server blocks" ou "virtual hosts", facilitando a gestão de múltiplos sites em um único servidor Nginx. Adicionalmente, o Nginx armazena seus logs em /var/log/nginx, onde são registradas informações cruciais sobre o acesso e erros do servidor, proporcionando insights valiosos para a resolução de problemas e otimização de desempenho. Esta estrutura organizada permite uma gestão eficaz e uma manutenção simplificada do servidor web Nginx.

Arvore de diretórios configuração Nginx em /etc/nginx:

/etc/nginx/
├── nginx.conf             # Arquivo de configuração principal do Nginx
├── mime.types             # Define tipos de mídia (MIME types) manipulados pelo Nginx
├── conf.d/                # Diretório para arquivos de configuração de sites específicos
   └── *.conf             # Arquivos de configuração que são automaticamente incluídos no nginx.conf
├── sites-available/       # Armazena as configurações de todos os sites (não necessariamente ativos)
   └── default            # Exemplo de arquivo de configuração para um site específico
├── sites-enabled/         # Contém links simbólicos para os sites ativamente servidos pelo Nginx
   └── default.           # Link simbólico para a configuração em sites-available
├── snippets/              # Pequenos fragmentos de configuração que podem ser incluídos em outros arquivos
└── modules-available/     # Diretório para módulos dinâmicos disponíveis (dependendo da instalação)
    └── *.conf             # Arquivos de configuração dos módulos
  • nginx.conf: Este é o arquivo de configuração principal do Nginx, onde as configurações globais são definidas. Ele também pode incluir instruções para ler outros arquivos de configuração de diretórios como conf.d e sites-enabled.

  • mime.types: Contém definições de tipos de MIME que ajudam o Nginx a entender como tratar diferentes tipos de conteúdo.

  • conf.d/: Este diretório é frequentemente utilizado para armazenar configurações específicas do servidor ou aplicação, que são automaticamente carregadas pelo nginx.conf. A convenção é usar a extensão .conf para esses arquivos.

  • sites-available/ e sites-enabled/: sites-available contém arquivos de configuração para todos os possíveis sites hospedados pelo servidor, enquanto sites-enabled contém links simbólicos para os arquivos de configuração dos sites que devem ser ativamente servidos pelo Nginx. Esta abordagem permite uma fácil ativação e desativação de sites.

  • snippets/: Este diretório é útil para armazenar trechos de configuração que podem ser reutilizados em vários arquivos de configuração para evitar duplicação.

  • modules-available/: Em algumas instalações do Nginx, este diretório contém módulos dinâmicos que podem ser ativados ou desativados conforme necessário. Os módulos estendem a funcionalidade do Nginx, mas seu uso e disponibilidade podem variar dependendo de como o Nginx foi compilado e instalado.

O diretório /var/www é tradicionalmente usado para armazenar os arquivos de conteúdo web, como páginas HTML, scripts PHP, folhas de estilo CSS e imagens. A estrutura dentro deste diretório pode variar dependendo de quantos sites estão sendo hospedados e como você deseja organizá-los. Uma estrutura comum é separar cada site em seu próprio subdiretório, nomeado após o domínio do site:

/var/www/
├── html/                  # Diretório padrão para conteúdo web no Nginx
│   ├── index.html        # Página inicial padrão do Nginx
│   └── ...               # Outros arquivos e diretórios para o site padrão
├── example.com/           # Diretório para um site específico
│   ├── public_html/      # Raiz do documento onde os arquivos acessíveis ao público são armazenados
│   │   ├── index.html    # Página inicial do site
│   │   └── ...           # Outros arquivos e diretórios do site
│   └── logs/             # Diretório para logs específicos do site (opcional e dependente da configuração)
└── another-site.com/     # Outro diretório para um site diferente, com estrutura similar
  • html/: Este é o diretório padrão usado pelo Nginx para servir conteúdo se nenhuma outra configuração for especificada. Contém a página inicial padrão do Nginx e outros arquivos relacionados ao site padrão.

  • example.com/, another-site.com/: Diretórios nomeados após os domínios dos sites, contendo os arquivos específicos de cada site. Dentro de cada um desses diretórios, public_html/ é comumente usado como a raiz do documento, onde todos os arquivos acessíveis publicamente são armazenados.

Os logs do Nginx são essenciais para o diagnóstico de problemas, monitoramento de acessos e análise de segurança. O Nginx normalmente armazena seus arquivos de log em /var/log/nginx, divididos entre logs de acesso e de erro:

/var/log/nginx/
├── access.log            # Registra todas as solicitações ao servidor
├── error.log             # Registra erros de processamento do servidor
└── example.com/          # Diretórios para logs específicos de sites, se configurado dessa forma
    ├── access.log        # Logs de acesso específicos do site example.com
    └── error.log         # Logs de erro específicos do site example.com
  • access.log: Este arquivo loga todas as solicitações feitas ao servidor Nginx. Cada linha no arquivo representa uma solicitação e inclui detalhes como o IP do cliente, a data e hora da solicitação, o método HTTP, a URL solicitada, o código de status HTTP retornado e o tamanho da resposta.

  • error.log: Este arquivo contém mensagens de erro geradas pelo Nginx. Isso inclui erros de configuração, falhas ao processar solicitações e outros problemas do servidor. As mensagens neste log são cruciais para a solução de problemas.

Last updated