Pular para o conteúdo principal

Questão de Redes de Computadores — Nginx — CESPE / CEBRASPE 2024

Redes de ComputadoresNginx
Código
ce403989
Banca
CESPE / CEBRASPE
Órgão
MPO
Ano
2024
Cargo
APO ( )
server {      location / {           proxy_pass http://localhost:8080      }      location /images/ {            root /data;      } }   Considerando o trecho de código precedente, retirado de um servidor NGINX, e conceitos de servidores web NGINX, julgue o item subsequente.   Se a URL terminar em /images, o servidor NGINX será configurado pelo código precedente para servir imagens existentes na pasta /data.
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoC — Certo

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

NGINX: diretiva root e a resolução de caminhos

Gabarito: letra C (CERTO). A diretiva root /data; no bloco location /images/ faz com que o NGINX sirva arquivos a partir do diretório /data, de modo que uma requisição para /images/foto.png buscará o arquivo em /data/images/foto.png. A afirmação do enunciado está correta, pois o NGINX, ao receber uma URL que termina em /images, utilizará a configuração desse bloco para servir o conteúdo da pasta /data.

O NGINX é um servidor web de alto desempenho, proxy reverso e proxy de e-mail, conhecido por sua configuração simples e baixo consumo de recursos. No trecho apresentado, há dois blocos location: um para / (raiz) e outro para /images/. A diretiva proxy_pass no primeiro bloco encaminha as requisições para um servidor backend em http://localhost:8080. Já a diretiva root no segundo bloco define o diretório base para servir arquivos estáticos.

A diferença crucial entre root e alias é o que causa confusão. Com root, o caminho completo da URI é adicionado ao diretório raiz. Ou seja, para uma requisição /images/logo.png, o NGINX procura por /data/images/logo.png. Com alias, o trecho da URI correspondente ao location é substituído pelo caminho especificado. Se fosse alias /data/;, a mesma requisição procuraria por /data/logo.png.

No caso da questão, a URL termina em /images. O NGINX, ao receber uma requisição para /images, casa com o bloco location /images/ e, como a diretiva root está definida, ele tentará servir o arquivo ou diretório correspondente a partir de /data. Portanto, a afirmação de que o servidor será configurado para servir imagens da pasta /data está correta.

A pegadinha aqui é que muitos candidatos confundem root com alias, ou pensam que a diretiva proxy_pass do bloco / se aplica a todos os caminhos. No entanto, o NGINX escolhe o bloco location mais específico que corresponde à URI da requisição. Para /images, o bloco /images/ é o mais específico, e a diretiva root prevalece.

NGINX: root vs alias
  • 1root
    • URI completa é adicionada ao diretório
    • /images/logo.png → /data/images/logo.png
  • 2alias
    • Trecho do location é substituído
    • /images/logo.png → /data/logo.png
  • 3Seleção do location
    • Bloco mais específico vence
    • /images/ → root /data
LEVEL · soulevel.com.br

Alternativa C — ✅ Correta ⟵ GABARITO

A afirmação está correta. O bloco location /images/ com a diretiva root /data; configura o NGINX para servir arquivos a partir do diretório /data. Quando uma requisição é feita para uma URL que termina em /images, o NGINX utiliza esse bloco e busca o conteúdo em /data. A diretiva root adiciona o caminho da URI ao diretório especificado, resultando em /data/images/... para arquivos dentro dessa pasta.

Alternativa E — ❌ Incorreta

A afirmação não é falsa. O código apresentado realmente configura o NGINX para servir imagens da pasta /data quando a URL termina em /images. A diretiva root no bloco location /images/ é a responsável por essa configuração, e o comportamento descrito está de acordo com a documentação do NGINX.

Gabarito: letra C

Link permanente: /questoes/ce403989