Discussão com o gerenciador de proxy reverso

Olá, estou tentando configurar o Discourse com o Reverse Proxy Manager no Nginx em uma máquina. Tudo está acessível através do meu DNS usando as portas padrão na caixa, mas ao configurar com um proxy reverso para rotear o tráfego através do meu subdomínio com SSL forçado, simplesmente não funciona. Recebo um 502. Estou executando vários contêineres. O Proxy Manager isolado e todo o Discourse em outro. Eu procurei em praticamente todos os guias que pude encontrar e nada funciona. Tem que haver uma maneira de fazer isso com sucesso em 2025! Eu tenho um site rodando com o Proxy Manager e tudo está correto. Preciso entregar a rede FPM para os contêineres do Discourse, pois essa é a rede padrão que o Proxy Manager usa para tornar os contêineres do Discourse acessíveis ao Proxy Manager? Se sim, para onde preciso ir para colocar isso, pois não consigo encontrar nenhuma informação. As pessoas dizem para colocar em suas configurações, mas não sabem exatamente onde. ? Eu não quero ter que mudar as configurações. Eu vi alguns guias dizendo para não expor as portas e deixar o Proxy Manager fazer o resto, fiz isso. Eu vi guias dizendo para tentar usar os templates web.socketed.yml no diretório discourse/templates, mas isso também não funciona. Eu vi pessoas conseguindo fazer isso funcionar com e sem expor as portas no Discourse. Nada parece ser consistente aqui. O que funciona e o que funciona bem hoje em dia. Lembre-se, estou rodando apenas em uma caixa.

1 curtida

Minha suposição é que o gerenciador de proxy está funcionando perfeitamente e que o erro 502 é do discourse porque ele não está configurado corretamente.

Você comentou os templates let’s encrypt e ssl no seu arquivo yml?

2 curtidas

Boas notícias - nada parece “quebrado” ainda. Esse 502 foi quase certamente uma corrida de primeira inicialização: o Nginx tentou seu /srv/status antes que o Unicorn estivesse pronto. Seus logs mostram:

  • unicorn: run :white_check_mark:
  • Rails inicializado :white_check_mark:
  • Erro do Nginx às 17:34:11 “conexão recusada” (provavelmente antes que o Unicorn terminasse)

Vamos resolver isso rapidamente.

1) Tente o status novamente (host → app2)

curl -sSI http://127.0.0.1:8002/srv/status
  1. Se ainda mostrar 502, apenas reinicie o Nginx no app2 e teste de dentro do contêiner:
docker exec -it app2 bash -lc 'sv restart nginx & & sleep 2 & & curl -sSI http://127.0.0.1/srv/status'
curl -sSI http://127.0.0.1:8002/srv/status

Você deve ver HTTP/1.1 200 OK.


Consegui fazer funcionar. Como estou rodando em 2 contêineres Docker, tive que permitir o acesso para que eles se vissem através de uma rede. Nenhuma porta é exposta pelo Discourse, pois ele está rodando em portas internas do Docker. Além disso, é mais seguro.

Jonnyboy! iPhones são demais!

1 curtida

Então foi isso que uma IA lhe disse. Funcionou?

1 curtida

sim funcionou, e então eu anunciei o resultado no seguinte tópico;