CORS no Nginx: Guia de Configuracao para Seguranca Aprimorada
Cross-Origin Resource Sharing (CORS) e um mecanismo crucial para habilitar comunicacao segura entre servidores web e navegadores.

Cross-Origin Resource Sharing (CORS) e um mecanismo crucial para habilitar comunicacao segura entre servidores web e navegadores. Ao fornecer uma maneira para aplicacoes web solicitarem recursos de dominios diferentes, o CORS ajuda a superar as limitacoes da Same-Origin Policy (SOP), que restringe aplicacoes web de acessar dados em um dominio diferente daquele que serve a aplicacao.
Neste post, vamos explorar a importancia do CORS, como ele funciona e como configura-lo no Nginx para diferentes cenarios. Tambem vamos mergulhar nos conceitos-chave de CORS, como allow-origin, allow-methods, allow-headers e expose-headers.
Importancia do CORS
O CORS e essencial para aplicacoes web modernas, pois permite a comunicacao entre servidores e clientes de diferentes dominios. Isso garante que as aplicacoes possam acessar dados e servicos hospedados em varios dominios com seguranca, mantendo a integridade dos dados do usuario.
Configurando CORS no Nginx
O Nginx e um servidor web popular que pode ser facilmente configurado para suportar CORS. Nesta secao, forneceremos dois exemplos de configuracao diferentes para habilitar CORS em um servidor Nginx. A primeira configuracao sera para um unico dominio, enquanto a segunda cobrira varios dominios e subdominios.
Exemplo de Configuracao 1: Dominio Unico (domain.com)
Para habilitar CORS para um unico dominio, adicione o seguinte ao bloco server no seu arquivo de configuracao do Nginx:
location / {
add_header 'Access-Control-Allow-Origin' 'https://domain.com';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'Content-Type, Authorization';
add_header 'Access-Control-Expose-Headers' 'Content-Length';
}
Exemplo de Configuracao 2: Varios Dominios e Subdominios (domain.com, domain1.com, domain2.com, domain3.com e subdominios)
Para habilitar CORS para varios dominios e subdominios, use a seguinte configuracao no bloco server do seu Nginx:
location / {
if ($http_origin ~* (https?://(?:.+\.)?(domain\.com|domain1\.com|domain2\.com|domain3\.com)$)) {
add_header 'Access-Control-Allow-Origin' '$http_origin';
}
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'Content-Type, Authorization';
add_header 'Access-Control-Expose-Headers' 'Content-Length';
}
Conceitos de CORS
- Access-Control-Allow-Origin: Este header especifica quais origens tem permissao para acessar os recursos no servidor. Em nossos exemplos, definimos um unico dominio ou usamos uma expressao regular para corresponder a varios dominios e subdominios.
- Access-Control-Allow-Methods: Este header define os metodos HTTP permitidos (ex.: GET, POST, OPTIONS) que o cliente pode usar ao fazer requisicoes ao servidor.
- Access-Control-Allow-Headers: Este header lista os headers HTTP permitidos que o cliente pode incluir em suas requisicoes. Headers comuns incluem "Content-Type" e "Authorization."
- Access-Control-Expose-Headers: Este header especifica quais headers o servidor expoe ao cliente. Em nossos exemplos, expomos o header "Content-Length."
Conclusao
O CORS e um mecanismo de seguranca vital para aplicacoes web modernas. Ao entender e implementar CORS no Nginx, voce pode garantir que suas aplicacoes web possam acessar recursos com seguranca entre diferentes dominios. Com este guia, voce agora deve ser capaz de configurar CORS no Nginx para dominios e subdominios unicos ou multiplos, entendendo tambem a importancia de conceitos-chave de CORS como allow-origin, allow-methods, allow-headers e expose-headers. Garantir que seu servidor Nginx esteja em conformidade com CORS melhorara a seguranca e a funcionalidade de suas aplicacoes web, proporcionando uma melhor experiencia do usuario e maior compatibilidade entre varias plataformas. Ao tornar seu conteudo amigavel para SEO e facil de entender, voce tambem melhorara a descoberta e o engajamento do usuario com sua aplicacao web.
Mais de Ercan
Mais dois sites, mesmo autor, terreno diferente.
IA, LLMs, agentes, ML aplicado.
Notas de campo sobre cargas de IA. Análise de custos do Bedrock, padrões de agentes, trade-offs de armazenamento vetorial, modos de falha em produção.
Visitar ercan.ai →O hub. Sobre, consultoria, contato.
Hub pessoal para as duas trilhas de escrita. Quem sou eu, como funciona a consultoria, como me contatar.
Visitar ercanermis.com →