Hacer que 'www' funcione con Discourse

Hola, me gustaría asegurarme de que el subdominio www redirija a los usuarios a la instalación real de Discourse. Siento que esto es necesario para no perder visitantes. La mayoría de las personas no omiten ‘www’ al visitar sitios web.

Necesitas agregar un registro A en la configuración DNS de tu proveedor de dominio para www, apuntando a la IP del servidor. La misma a la que actualmente apunta el registro A de domain.com.

¿Esto causará problemas cuando el usuario visite la versión con www? Discourse está configurado para no incluir el www.

No, porque el usuario será redirigido. No se servirá el mismo sitio bajo múltiples dominios.

Querrás estas guías. Yo las utilicé con el mismo propósito exacto:

¿Estás diciendo que no basta con añadir el registro A para ‘www’? Leí esos artículos.

Mi sitio mostraba un mensaje desagradable en el navegador sin registrar un certificado para ambos “subdominios”.

Acabo de configurar Discourse en un droplet de Digital Ocean. Para el paso 2, editar discourse.conf, ¿requiere que nginx esté instalado? No estoy seguro, pero creo que mi droplet no tiene nginx instalado y no sé cómo instalarlo.

Creo que esta guía explica esa parte:

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

Sí, agregar un registro A para www apuntando a la misma IP será suficiente para redirigir el tráfico.

No necesitas hacer nada de lo descrito en esas otras guías; un registro A apuntando a la IP bastará para una redirección sencilla.

Evita complicar tu instalación a menos que sea estrictamente necesario.

¿Será esto suficiente para evitar el error del navegador NET::ERR_CERT_COMMON_NAME_INVALID? Si instalo Discourse en el subdominio www, al acceder al sitio con https://example.com me muestra ese error. Solo funciona si usas https://www.example.com.

Por eso es que quieres usar una redirección; Discourse no puede ser servido desde múltiples URLs.

Elige una y redirige la otra.

Tengo un problema similar y el uso de un registro de redirección de URL a nivel de DNS no resuelve el problema para mí.

Instalé Discourse usando el nombre de host ‘www.example.com’ y los siguientes registros DNS:

Registro A             host:WWW      valor:mi_ip_servidor
CNAME                  host:@        valor: www.example.com
Registro de redirección de URL  host:@        valor:https://www.example.com

Si luego uso https://www.ssllabs.com/ssltest/index.html para verificar la URL https://example.com sin el WWW, obtengo un error de desajuste del nombre del certificado y en mi navegador un error NET::ERR_CERT_COMMON_NAME_INVALID.

Disculpas de nuevo si me estoy perdiendo algo obvio aquí; ¡las redes no son mi fuerte!

Por eso publiqué esos enlaces. Me encantaría que fuera tan sencillo como un cambio de DNS. A mí tampoco me pareció tan sencillo. Para que funcione mediante HTTPS, tuve que asegurarme de que se registrara un certificado para ambas direcciones. Para lograrlo, utiliza una de las guías que publiqué anteriormente. La otra guía te permite realizar una redirección.

Es muy poco probable que los usuarios especifiquen el protocolo al escribir una URL. Si realmente te preocupa, puedes usar Cloudflare para DNS y una regla de página sencilla.

Sí, ‘mudé’ mi dominio (bueno, simplemente elegí eliminar el www), por eso tuve que servir los enlaces existentes que ya estaban en sitios que no controlaba y que hacían referencia a mi antiguo dominio con https. Eso podría explicar por qué, en mi caso, no tuve más remedio que hacer el trabajo completo.

Así que, lo que creo que estás diciendo es que, si solo te basta con que alguien escriba www.example.com y que esto se redirija a https://example.com, solo se requiere un cambio de DNS.

Sin embargo, si por cualquier razón quieres que https://www.example.com funcione (en mi caso sí, porque esos enlaces ya estaban ‘por ahí’), debes seguir las guías proporcionadas.

O simplemente usa una regla de página como se indicó anteriormente. Esto pondrá el dominio frente a un certificado comodín y redirigirá el tráfico sin problemas.

Todo ello sin ninguna complejidad adicional en el servidor de Discourse.

¿Qué es una regla de página?

Tengo la intención de seguir How To Install Discourse Behind Nginx on Ubuntu 14.04 | DigitalOcean para instalar Nginx en mi droplet de Digital Ocean y luego aplicar las reglas listadas en el “paso 2” para redirigir al dominio correcto. Creo que esto debería funcionar. Lo probaré mañana y veré si me permite redirigir todas las combinaciones de https://www., http://www, http://domain.com, https://domain.com a mi nombre de host de Discourse, que es https://www.domain.com, con el certificado de Let’s Encrypt.

¡Ya veremos!

@Erik_Manger, las soluciones basadas en DNS no funcionaron para mí con SSL. Usé el primer enlace proporcionado por @merefield y funciona bien.

¿Necesitaste instalar Nginx delante de Discourse para que esto funcionara? En mi droplet de Digital Ocean, la ruta “/etc/nginx/” utilizada en los hooks adicionales no existe.