Configurando a Nginx
Podemos agora configurar a Nginx para prover páginas web estáticas e dinâmicas bem como web services (API). Para isso vamos inicialmente criando um diretório que por padrão vamos chamar de includes. Podemos fazer isso usando o comando:
Neste diretório iremos armazenar diversos arquivos .conf
um para cada aplicação que iremos servir sendo através do proxy reverso ou não. Ao final do processo teremos a seguinte arvore de diretórios:
Podemos agora configurar um servidor HTTP editando o arquivo default dentro do diretório sites-available adicionando referencias aos arquivos de configuração na pasta includes.
listen 80 default_server; listen [::]:80 default_server;
: Essas linhas configuram o Nginx para ouvir na porta 80, tanto para IPv4 quanto para IPv6, e definem este servidor como o servidor padrão para solicitações que não correspondam a outro servidor específico.root /var/www/html;
: Define o diretório raiz para os arquivos do site. É onde o Nginx procurará os arquivos para servir como resposta a solicitações HTTP. Esta linha pode ser comentada e alterada de acordo com a necessidade de sua homepage.index index.html index.htm index.nginx-debian.html;
: Especifica os arquivos que o Nginx deve procurar dentro do diretório raiz quando um diretório é solicitado. Se esses arquivos existirem, um deles será servido como a página inicial.server_name _;
: O underscore é usado aqui como um caractere curinga, significando que este servidor atenderá a todas as solicitações de host que não correspondam a outroserver_name
. Também é possível ter um server_name especifico de seu domínio como por exemplo mackleaps.mackenzie.br.include /etc/nginx/includes/*.conf
: Inclui todas as configurações adicionais localizadas no diretório/etc/nginx/includes
. Esta diretiva permite modularizar a configuração incluindo fragmentos de configuração armazenados separadamente.Vamos agora modificar o
nginx.conf
no diretório/etc/nginx
.Caso você possua certificados SSL para HTTPS '’e nesse arquivo que os mesmos devem ser configurados.
Configuração Global
user www-data;
: Define o usuário (e grupo, se não especificado) sob o qual o Nginx será executado.www-data
é comumente usado para serviços web em sistemas Unix/Linux.worker_processes auto;
: Determina o número de processos de trabalho do Nginx.auto
permite que o Nginx escolha o melhor número com base no número de núcleos de CPU disponíveis.pid /run/nginx.pid;
: Especifica o arquivo que armazenará o ID do processo do Nginx.include /etc/nginx/modules-enabled/*.conf;
: Inclui configurações de módulos que foram habilitados, permitindo a extensão de funcionalidades.
Bloco events
events
worker_connections 768;
: Define o número máximo de conexões que cada processo de trabalho pode abrir. É um parâmetro crucial para dimensionar o desempenho do Nginx.
Configurações HTTP
Esta seção engloba várias diretivas aplicadas ao processamento de solicitações HTTP:
sendfile on;
: Ativa o uso da operaçãosendfile
para transferir arquivos mais eficientemente.tcp_nopush on;
: Habilita otcp_nopush
para enviar o cabeçalho HTTP em um único pacote de rede.server_tokens off;
: Desativa a emissão da versão do Nginx nas respostas, aumentando a segurança.ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
: Especifica os protocolos SSL/TLS permitidos, excluindo SSLv3 devido a vulnerabilidades como o POODLE.
Configurações de Log
access_log /var/log/nginx/access.log;
: Define o arquivo de log de acesso.error_log /var/log/nginx/error.log;
: Especifica o arquivo de log de erro.
Configurações Gzip
gzip on;
: Habilita a compressão gzip para tipos de conteúdo especificados, o que pode reduzir significativamente o tamanho das respostas HTTP.
Inclusões de Configuração de Host Virtual
include /etc/nginx/conf.d/*.conf;
einclude /etc/nginx/sites-enabled/*;
: Incluem arquivos de configuração adicionais, permitindo a definição de configurações específicas de host virtual armazenadas nos diretóriosconf.d
esites-enabled
, respectivamente.
Comentários de Configuração de Email
A seção comentada ao final do arquivo mostra um exemplo de como configurar o Nginx para servir como um proxy para serviços de e-mail POP3 e IMAP. Embora esteja comentada e, portanto, não ativa, ela ilustra a versatilidade do Nginx em lidar com diferentes tipos de tráfego de rede além do HTTP.
Este arquivo de configuração exemplifica uma configuração básica do Nginx, enfatizando segurança, eficiência e flexibilidade, com opções para expansão conforme as necessidades do servidor ou da aplicação evoluem.
Last updated