Iniciante Fundamentos

Blocos location

O bloco location define regras para caminhos de URL específicos. É dentro dele que você controla como cada parte do site é tratada.

Match por prefixo

O tipo mais comum combina pelo começo da URL:

location /imagens/ {
    root /var/www/midia;
}

Tudo que começa com /imagens/ cai aqui.

Match exato (=)

O sinal = exige correspondência exata da URL:

location = /favicon.ico {
    log_not_found off;
}

/favicon.ico combina, nada mais.

Match por expressão regular (~)

Use ~ para regex sensível a maiúsculas e ~* para ignorar maiúsculas:

location ~* \.(jpg|png|gif)$ {
    expires 30d;
}

Esse bloco combina qualquer URL que termine com essas extensões de imagem.

Ordem de prioridade

O Nginx escolhe o location nesta ordem:

  1. Match exato =.
  2. Prefixo mais longo com ^~.
  3. Expressões regulares ~ e ~*, na ordem em que aparecem.
  4. O prefixo mais longo restante.

Resumo

O location direciona URLs para regras. Há match por prefixo, exato com = e por regex com ~. Conhecer a ordem de prioridade evita surpresas na escolha do bloco.