Recientemente seguí la guía install-cloud para instalar discourse en una instancia de AWS lightsail. A pesar de seguir las instrucciones de cerca y empezar de cero varias veces, desafortunadamente obtengo un error de “conexión rechazada” al intentar acceder a mi foro.
Los pasos que seguí fueron:
Crear una nueva instancia de lightsail
Asignar una dirección IP estática
Abrir el puerto 443
Apuntar mi subdominio (forum.procedural.audio) a la dirección IP
Seguir los comandos de instalación de discourse en la guía, incluyendo proporcionar una dirección de correo electrónico para LETS_ENCRYPT
Navegar a mi foro… conexión rechazada
Ejecutar ./discourse-doctor muestra que la versión de discourse en forum.procedural.audio es NOT FOUND. Puedo recibir con éxito un correo electrónico de prueba de discourse.
Ejecutar ping forum.procedural.audio no recibe datos pero encuentra la IP estática correcta.
Noté los siguientes errores en los logs
Así que parece que el problema está relacionado con SSL, aunque no estoy seguro de cómo solucionarlo. En el directorio shared/standalone/ssl/ hay cuatro archivos
forum.procedural.audio.cer (el archivo está vacío)
forum.procedural.audio.key (el archivo contiene una clave)
forum.procedural.audio_ecc.cer (el archivo está vacío)
forum.procedural.audio_ecc.key (el archivo contiene una clave)
Así que no estoy seguro de si el hecho de que los archivos .cer estén vacíos es parte del problema. Sin embargo, también noto que los logs indican que está buscando el archivo en /shared/ssl/* en lugar de /shared/standalone/ssl/*, lo que también parece relevante.
El problema es que tu instancia de Lightsail no es accesible externamente. Eso es lo que discourse-doctor te estaba diciendo: si solo abriste el puerto 443, probablemente sea por eso.
HTTPS en el puerto 443 no funcionará hasta que tengas un certificado. No tienes un certificado (y esos archivos de certificado están vacíos) porque Let’s Encrypt no pudo inscribirse debido al problema de comunicación.
Suponiendo que asignaste una dirección externa estática, abre también el puerto 80 y vuelve a intentarlo. El puerto 80 deberá estar abierto de todos modos para que cualquier cliente que se conecte a través de HTTP pueda ser redirigido.
forum.procedural.audio no aparece en DNS, o dicho de otra manera, el nombre de host no se resuelve a una IP. Acabo de comprobarlo a través de CloudFlare y Google DNS, ninguno de los dos puede encontrar ese nombre de host. Si yo no puedo resolverlo, entonces discourse-doctor tampoco podrá.
¿Cuándo creaste el registro ‘a’ para tu servidor? ¿Has comprobado sus tiempos de replicación?
Asegúrate de que esto esté arreglado antes de intentar crear el servidor de nuevo. Let’s Encrypt da un número finito de intentos para inscribirse/renovar y cuando los agotas no podrás obtener un certificado durante siete días.
He tenido el dominio en Namecheap durante dos días, el cual apunta a Route 53 (la capa extra de indirección se debe a que Route 53 no admite dominios .audio). La entrada del dominio principal ha existido durante la mayor parte de esos dos días. El registro del subdominio ha existido durante aproximadamente una hora.
Si este fuera el problema, creo que ejecutar ping forum.procedural.audio desde mi instancia fallaría al resolver la dirección IP. Pero la IP sí se resuelve.
Hmm. Bueno, https://dnschecker.org/#A/forum.procedural.audio muestra que el nombre se resuelve en varios lugares, así que tal vez sea un problema de propagación. Cuando 1.1.1.1 o 8.8.8.8 lo buscan, no obtengo respuesta. Sin embargo, NS-337.AWSDNS-42.COM sí lo devuelve, así que es posible que solo tengas que esperar un tiempo.
Pero discourse-setup intentará buscar la dirección y ver si puede conectarse consigo mismo. Si eso falla, normalmente es un problema de DNS o que los puertos no están abiertos.
Ha pasado casi una semana y sigo sin poder desplegar un foro. ¿Alguien tiene ideas adicionales? Los puertos 80 y 443 están abiertos. No creo que sea un problema de DNS: discourse-doctor no encuentra la versión de discourse en localhost (además de en forum.procedural.audio). Cualquier ayuda es apreciada.
Así que supongo que me equivoqué, pero no estoy seguro de qué hacer al respecto. No estoy seguro de por qué discourse-doctor no puede encontrar la versión de Discourse en localhost.