Discussão sobre problema de porta no Google Cloud?

Olá a todos! Já tentei algumas vezes colocar o Discourse no ar no Google Cloud. Atualmente estou na minha terceira tentativa, criando uma instância de VM (Ubuntu 18.04 minimal) e instalando o Discourse manualmente pelo terminal. Seguindo o guia, tudo parece estar correto, mas, após concluir o ./discourse-setup, não consigo acessar o site.

Também tentei instalar o Discourse usando as soluções de implantação “um clique” do Google Marketplace (a própria do Google e a da Bitnami). Ao fazer isso, consegui acessar a página inicial do Discourse.

Suspeito que haja algum problema relacionado ao Google e às portas (e que esse problema tenha sido evitado com as instalações prontas), mas sei muito pouco sobre tudo isso para depurá-lo sozinho. Alguma ideia?

2 curtidas

Isso poderia estar relacionado ao firewall?
Segundo meu entendimento, o G Cloud exige que marquemos duas caixas de seleção para permitir o acesso público a uma VM. A mesma configuração pode ser feita posteriormente, se necessário.

3 curtidas

Ei Bhanu, e obrigado pela sugestão!

Essas caixas já estão marcadas!

Ainda não está funcionando. Tentei fazer ping no site, tudo parece estar OK:

Fiz SSH no site e executei o netstat para verificar as portas, e isso foi o que apareceu:
ports
Mas não estou muito familiarizado com o netstat.

1 curtida

Agora estou pensando que talvez eu não esteja executando um servidor web? Preciso instalar o Nginx antes ou depois de instalar o Discourse, ou algo assim? Seguindo uma linha de raciocínio deste tópico, idêntico ao meu problema.

Ok, estou começando a achar que esse é o problema. Parecia que o Nginx estava instalado, mas não estava rodando. Matei os PIDs 14311 e 14295 do docker-proxy e depois executei o Nginx. Agora o Nginx está vinculado à porta 80 e, ao acessar meu site, sou recebido pelo Nginx!
Agora é preciso fazer o Docker/Discourse funcionar novamente.

Também encontrei este guia sobre como instalar e configurar o Discourse com Nginx em uma versão mais antiga do Ubuntu. Eles parecem ter alterado a porta do Docker, para a porta 80 por algum motivo. Talvez haja algum conflito aqui.

De alguma forma, consegui ter o Nginx rodando na porta 80 e o docker-proxy escutando nas portas 8060 para HTTP e 9443 para HTTPS (como sugerido neste outro tutorial). Mas, tendo alcançado isso, estou perdido novamente. O Discourse parece ser um fórum tão legal, mas aparentemente impossível de instalar no Google Cloud para iniciantes como eu.

2 curtidas

Você não precisa executar um servidor web dedicado, a menos que planeje usá-lo para mais do que hospedar o Discourse, já que o Discourse já vem com o servidor Nginx integrado. Você poderia confirmar se o seu servidor foi atribuído um endereço IP público e se ele está configurado para permitir conexões externas nas portas 22, 80 e 443?

Veja: VPC firewall rules  |  Cloud Next Generation Firewall  |  Google Cloud Documentation

2 curtidas

Sim. Minha instância de VM no Google possui um IP público e permite tráfego nas portas 22, 80 e 443.

Acho que isso também foi demonstrado quando eu matei os PIDs do processo docker-proxy (nas portas 80 e 443), iniciei o Nginx (na porta 80) e consegui acessar a página inicial do Nginx no meu site.

1 curtida

Isso indica que há algo errado com a própria instalação. Se for uma instalação nova, provavelmente é mais fácil apenas destruir a VM e configurá-la novamente.

2 curtidas

Já instalei o software três vezes, e as portas sempre ficam sem vínculo. Fiz três instalações bem-sucedidas, mas nunca consegui acessar o fórum. Por isso, estou considerando usar a versão do Google (que funciona, mas não permite configurar o SMTP) e, em seguida, encontrar uma maneira de configurar o SMTP a partir dessa versão.

1 curtida

É possível configurar o SMTP após a conclusão da instalação?
Seguindo o “Passo 11” neste link, consegui criar (já que não existia) e editar o arquivo discourse.conf. Após fazer isso, aparentemente pude reiniciar o “serviço discourse” e testar minhas configurações de e-mail?

Isso significa que não preciso reinstalar o Discourse, correto?

Ao verificar meus serviços em execução, no entanto, não vejo nenhum chamado “discourse”, embora meu fórum Discourse esteja obviamente em funcionamento.


O Discourse não deveria aparecer aqui? Existe algum outro serviço listado que eu possa reiniciar e que, por sua vez, reinicie o serviço do Discourse?

2 curtidas

Desculpe, não tenho a menor ideia de como a imagem do Google Cloud está configurada. Fiz mais de uma dúzia de instalações (incluindo uma na semana passada) e tenho quase certeza de que o problema provavelmente está relacionado à forma como sua VM foi configurada.

Estes são os meus passos de preparação antes de seguir o Guia oficial de instalação:

  1. Configurar o Compute Engine para permitir tráfego HTTP e HTTPS.
  2. Configurar o DNS e confirmar.
  3. Garantir conectividade com minha VM via SSH.

Posso assegurar que o processo funciona.

PS: Geralmente uso a versão minimal do Ubuntu no Google Cloud para instalar o Discourse.

1 curtida

Você não está seguindo a Instalação Padrão Oficial do Discourse?

1 curtida

Hm. Que estranho. Mas obrigado por confirmar que isso é de fato possível no Google Cloud. Também acho que a instalação do Discourse funciona bem, e que o problema está na VM/portas. Então vou tentar uma quarta vez amanhã. Mesmo tendo feito aqueles passos de preparação todas as vezes. Obrigado, Bhanu.

@pfaffman Eu fiz.

2 curtidas

Além disso, não é realmente o “Computer Engine” para o qual você permite o tráfego HTTP/HTTPS, certo? É a “instância de VM”?

1 curtida

Compute Engine é a gíria do Google para VM, se não me engano.

1 curtida

O Discourse-setup verifica as portas quando você o executa. Esses testes estão passando?

2 curtidas

Vou verificar agora. Acabei de remover as instâncias antigas e o projeto, e criei um novo projeto e uma nova instância no Google Cloud. Vou tentar instalar o Discourse agora e informar as portas verificadas!

2 curtidas

Certo, então alguns dias depois. Está funcionando!

Fiz o mesmo processo mais uma vez, mas fui mais cuidadoso em cada etapa desta vez.
Apaguei minha instância e projeto no Google Cloud e comecei com um projeto novo.

Em seguida, criei um novo projeto e uma nova instância. Ubuntu 18.04 LTS minimal. HTTP/HTTPS habilitado. Antes de seguir o guia oficial, linkado acima, fiz como o Bhanu disse e testei a conectividade. Segui o “tutorial de boas-vindas” do Google Cloud, que também envolve testar um script de servidor Python na porta 80, etc.

Durante o processo do “guia oficial”, fui muito cuidadoso na configuração do SMTP. Por algum motivo, decidi não usar o Mailgun, mas acabei usando o Sendinblue. O que funciona muito bem!

Realmente não sei qual foi a diferença desta vez, mas agora está funcionando. Obrigado por discutir comigo no tópico!

6 curtidas

Não sei por que não consigo editar minha postagem anterior, mas um moderador pode fundi-las.

Só queria adicionar que acho que meu problema e solução PODEM ter sido que eu estava muito ansioso.

Por ter instalado um plugin defeituoso, recentemente precisei formatar e reinstalar minha instância do Discourse. Quando iniciei essa nova instância, obtive um novo IP. Então, fui ao meu serviço de hospedagem, atualizei meu ponteiro A/DNS, que aponta meu subdomínio discourse.mydomain.com para o IP da minha instância do Google Cloud, e depois voltei ao SSH do Google Cloud para executar a configuração.

Quando você executa ./discourse-setup pela primeira vez, a configuração verifica a capacidade de vincular às portas 80 e 443. Mas, por algum motivo, ela novamente se recusou a vincular às portas 80 e 443. Verifiquei o DNS no who.is e o subdomínio resolveu corretamente para o IP e tudo mais, mas ainda assim não funcionou. Tentei executar ./discourse-setup três vezes, sem sucesso. Verifiquei com netstat -ltnpu, nada de especial. Esperei mais 5 minutos, executei pela quarta vez e agora funcionou.

2 curtidas

Não consigo editar minha postagem anterior. Mas, na verdade, tive problemas para instalar novamente. Desta vez, adicionei também as seguintes permissões no meu firewall:

O SMTP provavelmente não é necessário, mas as regras de “Egress” para as portas 80 e 443 parecem ter sido essenciais.

1 curtida

Acredito que não seja necessário configurar nenhuma regra de saída, pois todas as portas estão abertas por padrão, exceto a porta 25, que é sempre bloqueada.

3 curtidas