Configuração e Análise do Nginx: Instalação e Diretivas de Localização

Diretiva Location no Nginx

A diretiva location, parte do módulo NginxHttpCoreModule, é usada para configurar como o Nginx processa URIs solicitados. A URI pode ser uma string literal ou uma expressão regular, mas regex exige um prefixo específico.

Sintaxe da Diretiva Location

location [= | ~ | ~* | ^~] /uri/ { ... }
  • =: Correspondência exata. Intrerompe a busca e processa imediatamente.
  • ~: Correspodnência com distinção entre maiúsculas e minúsculas (permite regex).
  • ~*: Correspondência sem distinção entre maiúsculas e minúsculas (permite regex).
  • !~ e !~*: Negação com e sem distinção de caso.
  • ^~: Se aplicado a uma string, impede a avaliação de regex se houver correspondência.

Ocultando Informações do Servidor

Para melhorar a segurança, é possível ocultar a versão do Nginx nos cabeçalhos de resposta:

server_tokens off;

Instalação do Nginx com Módulos Essenciais

O Nginx é um servidor web de alto desempenho, proxy reverso e servidro de e-mail. Para uma instalação completa, dependências como PCRE (para regex) e zlib (para compressão) são necessárias.

Instalando Dependências

# Instalar PCRE
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.21.tar.gz
tar -zxvf pcre-8.21.tar.gz
cd pcre-8.21
./configure && make && make install

# Instalar zlib
wget http://zlib.net/zlib-1.2.8.tar.gz
tar -zxvf zlib-1.2.8.tar.gz
cd zlib-1.2.8
./configure && make && make install

# Instalar OpenSSL
wget http://www.openssl.org/source/openssl-1.0.1c.tar.gz
tar -zxvf openssl-1.0.1c.tar.gz
./config && make && make install

Compilando o Nginx

wget http://nginx.org/download/nginx-1.7.2.tar.gz
tar -zxvf nginx-1.7.2.tar.gz
cd nginx-1.7.2
./configure \
  --sbin-path=/usr/local/nginx/nginx \
  --conf-path=/usr/local/nginx/nginx.conf \
  --pid-path=/usr/local/nginx/nginx.pid \
  --with-http_ssl_module \
  --with-pcre=../pcre-8.21 \
  --with-zlib=../zlib-1.2.8
make && make install

Parâmetros de Configuração Comuns

  • --prefix: Diretório de instalação.
  • --sbin-path: Caminho do binário do Nginx.
  • --conf-path: Arquivo de configuração principal.
  • --with-http_ssl_module: Habilita suporte a HTTPS.
  • --with-pcre: Define o caminho do código-fonte do PCRE.

Monitoramento e Controle do Nginx

Para verificar o status do Nginx, use a diretiva stub_status em um bloco location:

location /NginxStatus {
  stub_status on;
  access_log off;
  allow 127.0.0.1;
  deny all;
}

Isso retorna informações como conexões ativas, requisições tratadas e estados de leitura/escrita.

Comandos Básicos de Gerenciamento

# Iniciar
/usr/local/nginx/sbin/nginx

# Recarregar configuração
/usr/local/nginx/sbin/nginx -s reload

# Parar
/usr/local/nginx/sbin/nginx -s stop

Exemplo de Configuração

user www-data;
worker_processes auto;
pid /var/run/nginx.pid;

events {
  use epoll;
  worker_connections 10240;
}

http {
  include mime.types;
  default_type application/octet-stream;
  sendfile on;
  tcp_nopush on;
  keepalive_timeout 65;
  gzip on;

  server {
    listen 80;
    server_name exemplo.com;

    location / {
      root /var/www/html;
      index index.html;
    }

    location /app {
      proxy_pass http://backend_servers;
      proxy_set_header Host $host;
    }
  }

  upstream backend_servers {
    server 192.168.1.10:8080;
    server 192.168.1.11:8080;
  }
}

Configurações de Desempenho e Segurança

  • worker_processes: Define o número de processos de trabalho.
  • worker_connections: Limite de conexões por processo.
  • gzip: Habilita compressão de resposta.
  • server_tokens off: Oculta a versão do Nginx.

Tags: nginx http-core location proxy-reverso load-balancing

Publicado em 9-19 00:31