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:
Instalar Docker Compose:
Instalar Nginx:
3. Configuração do Nginx (Proxy Reverso)
Criar arquivo de configuração:
Exemplo de configuração (domínio fictício):
Ativar:
Esses headers são fundamentais para evitar erros em autenticação como:
- redirect_uri_mismatch
4. Configuração do ASP.NET Core
Também é recomendado:
- Uso de HTTPS obrigatório (
UseHttpsRedirection) - Cookies com
SecureeSameSite=None - Evitar manipulação manual de
redirect_uri
5. DataProtection (obrigatório)
Criar diretório para chaves:
No Docker Compose:
6. OAuth Google
Configurar exatamente:
Essas URLs devem ser exatamente iguais às usadas pela aplicação.
Problemas comuns:
redirect_uri_mismatch: URL divergenteCorrelation failed: erro de cookie devido a host ou protocolo incorreto
7. Deploy
Rebuild da aplicação:
Ver logs:
8. Segurança
Configurar firewall:
Boas práticas:
- Sempre usar HTTPS
- Não expor portas internas
- Atualizar o sistema regularmente
- 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.