Login
Login

Exemplos da diretiva location no Nginx

Exemplos da diretiva location no Nginx
Adnene Mabrouk
Redator técnico
Servidor web – Nginx
09.02.2026
Reading time: 5 min

A diretiva location do Nginx é uma ferramenta poderosa para controlar como diferentes tipos de requisições são processados. Ao definir regras em blocos location, você pode aplicar configurações específicas, redirecionar tráfego para diferentes partes da aplicação ou até bloquear completamente determinadas requisições. O uso correto dessa diretiva permite um gerenciamento eficiente das solicitações, o que é essencial para melhorar o desempenho, a segurança e a funcionalidade de aplicações web.

Sintaxe básica da diretiva location

A diretiva location é definida no arquivo de configuração nginx.conf:

location [modifier] uri { ... }

  • modifier: parâmetro opcional que define o tipo de correspondência (exata, prefixo, expressão regular etc.)

  • uri: a URI que será comparada

Dentro das chaves, você pode definir diversas diretivas como proxy_pass, root ou index.

Exemplo de correspondência exata

Uma correspondência exata ocorre quando a string fornecida coincide exatamente com a URI solicitada.

location = /exact-match {

    root /var/www/html;

    index index.html;

}

Somente requisições para /exact-match serão processadas por este bloco.

Você também pode adicionar condições usando if (observe que o Nginx não possui um if-else tradicional):

location = /exact-match {

    root /var/www/html;

    index index.html;

    if ($http_user_agent ~* "Chrome") {

        add_header X-Browser "Chrome";

    }

}

Se o agente do usuário for identificado como Chrome, a resposta incluirá o cabeçalho adicional X-Browser.

Exemplo de correspondência por prefixo

É o tipo mais comum e corresponde a qualquer URI que comece com a string especificada.

location /prefix {

    root /var/www/html;

    index index.html;

    if ($request_method = POST) {

        return 405;

    }

}

Este bloco processará solicitações como /prefix/page1 ou /prefix/page2. Caso o método seja POST, o Nginx retorna 405 Method Not Allowed.

Exemplo com expressões regulares

Para cenários mais complexos, expressões regulares são úteis.

Curingas comuns:

  • . – corresponde a um único caractere

  • .* – corresponde a qualquer sequência

  • ^ – início da string

  • $ – fim da string

location ~* \.php$ {

    fastcgi_pass 127.0.0.1:9000;

    fastcgi_index index.php;

    include fastcgi_params;

    if ($request_uri ~* "/admin") {

        return 403;

    }

    if ($request_uri !~* "/admin") {

        add_header X-Admin "Not Admin";

    }

}

Explicação:

  • ~* indica regex sem distinção entre maiúsculas/minúsculas

  • \.php$ corresponde a arquivos PHP

  • se a URI contiver /admin, retorna 403

  • caso contrário, adiciona o header X-Admin

Correspondência sem distinção de maiúsculas

location ~* \.jpg$ {

    root /var/www/images;

    if ($http_referer !~* "^https?://(www\.)?example\.com") {

        return 403;

    }

}

Corresponde a .jpg, .JPG etc., e só serve imagens se o referer vier de example.com.

Prioridade e ordem

O Nginx avalia os blocos assim:

  1. Correspondência exata (=)

  2. Expressões regulares (~, ~*) em ordem de definição

  3. Prefixos (/), onde o mais longo tem prioridade

Exemplo:

location = /exact { }

location ~* \.jpg$ { }

location / { }

Blocos location aninhados

location /nested {

    location /nested/subnested {

        root /var/www/html;

    }

    root /var/www/html;

}

Solicitações para /nested/subnested usam o bloco interno.

Exemplo real de servidor web

server {

listen 80;

server_name localhost;

location / {

root /var/www/html;

index index.html;

}

location = /about {

root /var/www/html;

index about.html;

}

location /api {

proxy_pass http://localhost:3000;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_set_header X-Forwarded-Proto $scheme;

}

location ~ \.php$ {

root /var/www/html;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

include fastcgi_params;

}

location ~* \.(jpg|jpeg|png|gif|ico)$ {

root /var/www/images;

}

location /admin {

root /var/www/admin;

index index.html;

location /admin/stats {

proxy_pass http://localhost:8080/stats;

}

}

}

Recarregar o Nginx

sudo systemctl reload nginx

Testes e depuração

Validar configuração:

sudo nginx -t

Testar rotas:

curl -I http://localhost/about

curl -X POST http://localhost/prefix/form

curl -H "User-Agent: Chrome" http://localhost/exact-match

Ver logs:

tail -f /var/log/nginx/access.log

tail -f /var/log/nginx/error.log

Restringindo acesso a rotas sensíveis

location /admin {

    allow 192.168.1.100;

    deny all;

}

Somente esse IP terá acesso.

root vs alias

Diretiva

Comportamento

root

acrescenta a URI

alias

substitui o prefixo

Exemplo:

location /files/ {

    alias /data/downloads/;

}

Nota: sempre finalize alias com /.

Conclusão

Compreender bem a diretiva location é fundamental para controlar corretamente o processamento de requisições. Os diferentes tipos de correspondência — exata, prefixo e regex — possuem prioridades distintas e impactam diretamente o desempenho e comportamento do site. Ao dominar esses padrões e utilizar blocos aninhados, você pode criar configurações Nginx limpas, eficientes e seguras.

Servidor web – Nginx
09.02.2026
Reading time: 5 min

Semelhante

Servidor web – Nginx

Como expor serviços com o Nginx Proxy Manager

O que é o Nginx Proxy Manager? O Nginx Proxy Manager é uma interface fácil de usar para gerenciar reverse proxies. Ele simplifica o processo de roteamento de tráfego para diferentes serviços, tornando-o acessível até mesmo para usuários sem conhecimento avançado em redes. Ao fornecer uma interface gráfica (GUI) sobre o Nginx, essa ferramenta permite configurar e gerenciar rapidamente proxy hosts, certificados SSL e diversas configurações avançadas, sem a necessidade de lidar com operações complexas na linha de comando. Instalação do Nginx Proxy Manager A instalação do Nginx Proxy Manager é simples graças ao Docker. A seguir está um guia passo a passo para colocá-lo em funcionamento: Pré-requisitos Ter o Docker e o Docker Compose instalados no seu servidor em nuvem Ter um conhecimento básico dos comandos do Docker Passos de instalação Crie um diretório para o Nginx Proxy Manager e acesse-o: mkdir nginx-proxy-manager cd nginx-proxy-manager Crie um arquivo docker-compose.yml com o seguinte conteúdo: version: '3' services:   app:     image: 'jc21/nginx-proxy-manager:latest'     restart: always     ports:       - '80:80'       - '81:81'       - '443:443'     environment:       DB_MYSQL_HOST: "db"       DB_MYSQL_PORT: 3306       DB_MYSQL_USER: "npm"       DB_MYSQL_PASSWORD: "npm"       DB_MYSQL_NAME: "npm"     volumes:       - ./data:/data       - ./letsencrypt:/etc/letsencrypt   db:     image: 'mysql:5.7'     restart: always     environment:       MYSQL_ROOT_PASSWORD: 'npm'       MYSQL_DATABASE: 'npm'       MYSQL_USER: 'npm'       MYSQL_PASSWORD: 'npm'     volumes:       - ./data/mysql:/var/lib/mysql Inicie os contêineres: docker-compose up -d Acesse o Nginx Proxy Manager pelo endereço IP do seu servidor na porta 81 (por exemplo, http://localhost:81). Configuração inicial do Nginx Proxy Manager Após a instalação, é hora de realizar a configuração inicial: Login:Abra o navegador e acesse http://<ip-do-seu-servidor>:81. As credenciais padrão são: E-mail: admin@example.com Senha: changeme Alterar credenciais padrão:Atualize imediatamente o e-mail e a senha para garantir a segurança do Nginx Proxy Manager. Visão geral do painel:O painel fornece uma visão geral dos seus proxy hosts, certificados SSL e outras configurações. Familiarize-se com a interface. Configuração de um novo proxy host Para expor um serviço, é necessário configurar um novo proxy host. Veja como: Adicionar um novo proxy host Vá até a seção “Proxy Hosts” Clique em “Add Proxy Host” Inserir nomes de domínio:Informe os domínios que deseja associar a este serviço. É possível adicionar vários domínios separando-os por vírgulas. Hostname/IP e porta de destino:Informe o endereço IP interno e a porta do serviço que será exposto.Exemplo: se o serviço web estiver rodando na porta 8080, informe 192.168.1.100 e 8080. Opções: Marque “Block Common Exploits” para adicionar uma camada extra de segurança Ative “Websockets Support” se o serviço exigir SSL:Você pode usar um certificado SSL existente ou solicitar um novo por meio do Let’s Encrypt. Salvar:Clique em “Save” para finalizar a configuração do proxy host. Gerenciamento de certificados SSL Os certificados SSL são essenciais para proteger seus serviços. O Nginx Proxy Manager simplifica esse processo: Solicitar um novo certificado SSL: Acesse a seção “SSL Certificates” Clique em “Add SSL Certificate” Selecione “Let’s Encrypt” e informe os dados necessários, como e-mail e domínio Renovação automática:O Nginx Proxy Manager renova automaticamente os certificados do Let’s Encrypt, garantindo a segurança dos serviços sem intervenção manual. Certificados personalizados:Caso possua um certificado SSL próprio, você também pode enviá-lo nesta seção. Opções avançadas de configuração O Nginx Proxy Manager oferece várias opções avançadas para ajustar sua configuração: Listas de acesso (Access Lists): Restrinja o acesso aos serviços criando listas de acesso Permita ou bloqueie tráfego com base em endereços IP Hosts de redirecionamento (Redirection Hosts): Configure facilmente redirecionamentos de um domínio para outro Stream Hosts: Utilize o recurso de stream para gerenciar tráfego TCP/UDP, como serviços SSH ou FTP Configuração personalizada do Nginx: Adicione diretivas personalizadas do Nginx caso o serviço exija configurações específicas Expondo serviços: guia passo a passo Expor um serviço usando o Nginx Proxy Manager envolve alguns passos: Identificar o serviço:Determine o IP interno e a porta do serviço que será exposto. Criar um proxy host:Siga os passos descritos na seção “Configuração de um novo proxy host”. Habilitar SSL:Solicite um certificado SSL para o domínio associado ao serviço. Testar a configuração:Acesse o serviço usando o domínio para garantir que tudo esteja funcionando corretamente. Monitorar e ajustar:Verifique regularmente o desempenho do serviço e ajuste as configurações conforme necessário. Monitoramento e logs O Nginx Proxy Manager inclui recursos integrados de monitoramento e registro: Logs: Acesse os logs pela seção “Logs” Os logs incluem informações detalhadas sobre as requisições recebidas, como endereços IP, caminhos solicitados e status das respostas Monitoramento: Utilize o painel para acompanhar o status dos proxy hosts e dos certificados SSL Certifique-se de que os certificados SSL estejam atualizados e que todos os serviços estejam funcionando corretamente Solução de problemas comuns Erros de certificado SSL: Verifique se o domínio está corretamente apontado para o IP do servidor Confirme que as portas 80 e 443 estão abertas e acessíveis 502 Bad Gateway: Verifique se o serviço exposto está em execução e acessível internamente Confirme se o IP interno e a porta configurados estão corretos Timeout de conexão: Revise as configurações do firewall para garantir que o tráfego não esteja sendo bloqueado Teste a conectividade entre o servidor e o serviço Conclusão O Nginx Proxy Manager simplifica significativamente o processo de exposição de serviços, sendo uma excelente ferramenta tanto para iniciantes quanto para usuários experientes. Com sua interface intuitiva e recursos poderosos, é possível configurar rapidamente reverse proxies, proteger serviços com certificados SSL e solucionar problemas de forma eficiente. Seguindo os passos deste guia, você estará apto a gerenciar e expor serviços com eficiência usando o Nginx Proxy Manager.
26 January 2026 · 7 min to read

Tem perguntas,
comentários ou preocupações?

Nossos profissionais estão disponíveis para ajudá-lo a qualquer momento,
seja para assistência ou apenas se você não souber por onde começar.
Envie-nos um e-mail
Hostman's Support