Eu uso o nginx para reverter o proxy para vários aplicativos dockerizados, que funcionam. Mas não consigo fazer o portainer funcionar.
Minha configuração do nginx inclui:
location ^~ /apps/portainer {
proxy_http_version 1.1;
proxy_set_header Connection "";
set $upstream portainer:9000;
proxy_pass http://$upstream;
}
A página não carrega corretamente (css e js não carregam). O log de erros do nginx:
[erro] open() "/var/www/html/apps/main.11b0c8b84d24581.js" falhou (2: nenhum arquivo ou diretório), solicitação: "GET /apps/main.11b0c8b84d24581.js HTTP/2.0"
Não entendo por que o nginx está tentando servir arquivos estáticos - tudo deve ser proxy para o portainer. (E o caminho está errado, embora irrelevante).
Existe uma correção regular para isso, que não envolve regex? BTW, a resposta dada abaixo por @EchoMike444 é excelente se você não se importa em usar regex em um bloco de localização.
Seguindo a configuração de https://portainer.readthedocs.io/en/stable/faq.html , consegui me conectar a http://127.0.0.1/apps/portainer/
Você está perdendo a parte que gerencia as conexões do websocket
meu
default.conf
para ngnixMeu
docker-compose.yaml
ATUALIZADO após comentário
Como o nginx faz a resolução do dns na inicialização, você quer usar uma variável, então
default.conf
se torna isso.