Fazendo o 'www' funcionar com o Discourse

Olá, gostaria de garantir que o subdomínio www redirecione os usuários para a instalação real do Discourse. Acho que isso é necessário para evitar perder visitantes. A maioria das pessoas não omite o ‘www’ ao acessar sites.

3 curtidas

Você precisa adicionar um registro A nas configurações de DNS do seu registrador para o www, apontando para o IP do servidor. O mesmo IP para o qual o registro A de domain.com está apontando atualmente.

1 curtida

Isso causará problemas quando o usuário acessar usando a versão com www? O Discourse está configurado para não incluir o www.

1 curtida

Não, porque o usuário será redirecionado. O mesmo site não será servido em vários domínios.

3 curtidas

Você quer esses guias. Eu os usei para exatamente o mesmo propósito:

4 curtidas

Você está dizendo que adicionar o registro A para ‘www’ não é suficiente? Li aqueles artigos.

Meu site exibiria uma mensagem desagradável no navegador sem registrar um certificado para ambos os “subdomínios”.

1 curtida

Acabei de configurar o Discourse em um droplet da Digital Ocean. Para a etapa 2, a edição do arquivo discourse.conf exige que o nginx esteja instalado? Não tenho certeza, mas acho que meu droplet não tem o nginx instalado e estou sem saber como instalá-lo.

Acho que este guia explica essa parte:

https://meta.discourse.org/t/running-other-websites-on-the-same-machine-as-discourse/17247/294

1 curtida

Sim, adicionar um registro A para www apontando para o mesmo IP será suficiente para redirecionar o tráfego.

Você não precisa seguir o que está descrito nesses outros guias; um registro A apontando para o IP é suficiente para um redirecionamento simples.

Tente não complicar sua instalação a menos que seja absolutamente necessário.

3 curtidas

Isso será suficiente para evitar um erro de navegador NET::ERR_CERT_COMMON_NAME_INVALID? Se eu instalar o Discourse no subdomínio www, ao acessar o site com https://example.com, recebo esse erro. Ele só funciona se você usar https://www.example.com.

É por isso que você deve usar um redirecionamento: o Discourse não pode ser acessado a partir de múltiplos URLs.

Escolha um e redirecione o outro.

1 curtida

Tenho um problema semelhante e usar um registro de redirecionamento de URL no nível do DNS não resolve o problema para mim.

Instalei o Discourse usando o nome de host ‘www.example.com’ e os seguintes registros DNS:

Registro A             host:WWW      valor:meu_ip_servidor
Registro CNAME         host:@        valor: www.example.com
Registro de Redirecionamento de URL  host:@        valor:https://www.example.com

Se eu então usar SSL Server Test (Powered by Qualys SSL Labs) para verificar a URL https://example.com sem o WWW, recebo um erro de incompatibilidade de nome do certificado e, no meu navegador, um erro NET::ERR_CERT_COMMON_NAME_INVALID.

Peço desculpas novamente se estou ignorando algo óbvio aqui; redes não são meu ponto forte!

1 curtida

Por isso postei esses links. Eu adoraria que fosse tão simples quanto uma alteração de DNS. Para mim também não parecia ser tão simples. Para funcionar via HTTPS, precisei garantir que um certificado fosse registrado para ambos os endereços. Para conseguir isso, use um dos guias que postei acima. O outro guia permite que você configure um redirecionamento.

É muito pouco provável que os usuários especifiquem o protocolo ao digitar uma URL. Se você estiver realmente preocupado com isso, pode simplesmente usar o Cloudflare para DNS e uma regra de página simples.

1 curtida

Sim, eu ‘mudei’ meu domínio (na verdade, apenas optei por remover o www), e é por isso que precisei atender links existentes em sites que não controlo, que faziam referência ao meu antigo domínio com https. Isso pode explicar por que, no meu caso, não tive escolha a não ser fazer o trabalho completo.

Então, o que acho que você está dizendo é que, se você está satisfeito apenas em ter alguém digitar www.example.com e ser redirecionado para https://example.com, basta uma alteração no DNS?

No entanto, se, por qualquer motivo, você quiser que https://www.example.com funcione (no meu caso, eu queria, pois esses links já estavam ‘por aí’), você precisa seguir os guias fornecidos.

Ou basta usar uma regra de página, conforme mencionado acima. Isso fará o front-end do domínio usando um certificado curinga e redirecionará o tráfego de forma transparente.

Tudo isso sem qualquer complexidade adicional no servidor Discourse.

1 curtida

O que é uma regra de página?

Tenho a intenção de seguir o tutorial How To Install Discourse Behind Nginx on Ubuntu 14.04 | DigitalOcean para instalar o Nginx no meu droplet da DigitalOcean e, em seguida, aplicar as regras listadas no “passo 2” para redirecionar ao domínio correto. Acredito que isso deve funcionar! Vou tentar amanhã e ver se consigo redirecionar todas as combinações de https://www., http://www, http://dominio.com, https://dominio.com para o meu hostname do Discourse, que é https://www.dominio.com, com o certificado do Let’s Encrypt.

Vamos ver!

@Erik_Manger, as soluções baseadas em DNS não funcionaram para mim com SSL. Usei o primeiro link fornecido por @merefield e funciona bem.

Você precisou instalar o Nginx na frente do Discourse para fazer isso funcionar? No meu droplet da Digital Ocean, o caminho “/etc/nginx/” usado nos hooks adicionais não existe.