Ir para o conteúdo principal
Nexum Solutions Nexum Solutions
  • Início
  • Serviços
  • Newsletter
  • CRM
  • Contato
    • Sobre
    • Clientes
    • Processo
    • Diferenciais
    • Conteúdo
    • FAQ

    • Política editorial
    • Termos de uso
    • Privacidade
Entrar
Voltar para listagem Publicado em 17/03/2026
Artigo Daniel Marinho 3 min de leitura Atualizado em 22/03/2026 14:13

Configuração de Servidor Linux com Nginx para ASP.NET utilizando Docker me Produção com OAuth Seguro

Guia de configuração de servidor Linux com Nginx como proxy reverso para aplicações ASP.NET Core em Docker, incluindo headers essenciais, OAuth com Google, persistência de chaves e práticas de segurança para ambientes de produção.

1. Arquitetura

O ambiente utiliza um servidor Linux (ex: Ubuntu 22.04 LTS) com Docker para execução da aplicação ASP.NET Core. O Nginx atua como proxy reverso, sendo responsável por receber requisições externas e encaminhá-las ao container da aplicação.

Fluxo básico:

Cliente → Nginx → Aplicação(Docker)

O Nginx também gerencia SSL (HTTPS), redirecionamentos e headers necessários para funcionamento correto de autenticação (OAuth).


2. Instalação básica

Atualização do sistema servidor Linux:

sudo apt install docker.io -y
sudo systemctl enable docker
sudo systemctl start docker

Instalar Docker Compose:

sudo apt install docker-compose -y

Instalar Nginx:

sudo apt install nginx -y


3. Configuração do Nginx (Proxy Reverso)

Criar arquivo de configuração:

sudo nano /etc/nginx/sites-available/app.conf

Exemplo de configuração (domínio fictício):

server {
listen 80;
server_name exemplo.com www.exemplo.com;

return 301 https://$host$request_uri;
}

server {
listen 443 ssl http2;
server_name exemplo.com www.exemplo.com;

ssl_certificate /etc/ssl/certs/exemplo.crt;
ssl_certificate_key /etc/ssl/private/exemplo.key;

location / {
proxy_pass http://127.0.0.1:8080;

proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;

proxy_buffering off;
}
}

Ativar:

sudo ln -s /etc/nginx/sites-available/app.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

Esses headers são fundamentais para evitar erros em autenticação como:

  1. redirect_uri_mismatch


4. Configuração do ASP.NET Core

app.UseForwardedHeaders(new ForwardedHeadersOptions
{
ForwardedHeaders = ForwardedHeaders.XForwardedFor |
ForwardedHeaders.XForwardedProto |
ForwardedHeaders.XForwardedHost
});

Também é recomendado:

  1. Uso de HTTPS obrigatório (UseHttpsRedirection)
  2. Cookies com Secure e SameSite=None
  3. Evitar manipulação manual de redirect_uri


5. DataProtection (obrigatório)

Criar diretório para chaves:

sudo mkdir -p /opt/app/dpkeys
sudo chmod -R 777 /opt/app/dpkeys

No Docker Compose:

volumes:
-/opt/app/dpkeys:/home/app/.aspnet/DataProtection-Keys


6. OAuth Google

Configurar exatamente:

https://exemplo.com/signin-google
https://www.exemplo.com/signin-google

Essas URLs devem ser exatamente iguais às usadas pela aplicação.

Problemas comuns:

  1. redirect_uri_mismatch: URL divergente
  2. Correlation failed: erro de cookie devido a host ou protocolo incorreto



7. Deploy

Rebuild da aplicação:

sudo docker compose down
sudo docker compose up -d --build

Ver logs:

sudo docker logs -f app_container


8. Segurança

Configurar firewall:

sudo ufw allow 80
sudo ufw allow 443
sudo ufw enable

Boas práticas:

  1. Sempre usar HTTPS
  2. Não expor portas internas
  3. Atualizar o sistema regularmente
  4. Controlar permissões de diretórios


Conclusão

A utilização de Nginx como proxy reverso com ASP.NET Core em Docker é uma abordagem eficiente e escalável. A correta configuração de headers, persistência de dados e autenticação garante estabilidade e segurança em ambientes de produção.

Publicado por Daniel Marinho
Voltar para listagem Entrar para publicar
Nexum Solutions

Transformamos desafios em plataformas digitais escaláveis, seguras e governáveis.

Agendar diagnóstico
Contato
  • contato@nexumsolutions.com
  • +55 (11) 99999-0000
  • São Paulo - SP
Conexões
  • LinkedIn
  • WhatsApp
Políticas
  • Editorial
  • Termos
  • Privacidade

© 2026 Nexum Solutions. Todos os direitos reservados.