O site responde 502 Bad gateway - é Ruby?

Temos um Discourse que está em execução há pelo menos três anos e, ontem, cometi o erro de reiniciar a instância na esperança de que isso aplicasse uma alteração de domínio. A instância está rodando e podemos ver que o nginx está recebendo solicitações de fora, mas todos os visitantes estão recebendo “502 Bad gateway” o tempo todo. Aqui está um exemplo de entrada no log de erro do nginx:

2020/06/22 19:03:26 [error] 11742#11742: *158 connect() failed (111: Connection refused) while connecting to upstream, client: 162.158.159.12, server: <my domain>, request: "GET                / HTTP/1.1", upstream: "http://127.0.0.1:3000/", host: "<my domain>"

Não há nenhum servidor web rodando fora do Docker, então o arquivo app.yml simplesmente encaminha as portas 80 e 443 para dentro do container. Mas o que deveria estar na porta 3000? Deveria ser Ruby / Rails?

Olá Chris:

Sim, você está correto.

O Rails roda na porta 3000 no aplicativo Discourse.

Talvez você queira verificar o log do Rails no aplicativo para ver se consegue descobrir o que está acontecendo com o Rails.

Espero que isso ajude um pouco.

Você estava tentando alterar o nome de domínio da sua instância?

Existem procedimentos estabelecidos para isso. Se você não seguir o processo, pode causar erros como o que você está enfrentando.

Siga este guia, ele o ajudará a alterar o nome de domínio corretamente.
Change the domain name or rename your Discourse

Existe uma alternativa de “desenvolvimento” ao domínio em produção e, de alguma forma, ela se infiltrou na configuração, de modo que tudo, exceto as imagens, vem do domínio em produção, mas as imagens estão vindo do domínio de desenvolvimento. Como este último não possui um certificado, nós (com razão) enfrentamos o problema de segurança entre sites e as imagens não são carregadas.

Estamos atualmente tentando reconstruir o container, conforme sugerido em outros lugares.

Uma complicação adicional é que todo o tráfego está passando pela CloudFlare, então agora estamos tendo problemas com certificados SSL. Não tenho certeza se o templates/cloudflare.template.yml ainda funciona?

Você precisará desativar o Cloudflare para que o Let’s Encrypt possa solicitar um certificado.

Tudo resolvido agora. Nossa melhor equipe de tecnologia conseguiu criar uma nova versão e até mesmo fez o LetsEncrypt funcionar!