Odio tener que hacer algo fuera de lo común aquí. Lo odio tanto como cualquier otra persona, pero es todo lo que sé hacer y cómo se ejecutan todas las demás aplicaciones autoalojadas que tengo.
Tengo mi registro A comodín apuntando a una IP interna en mi red, la cual tiene los puertos 80 y 443 exportados por nginx proxy manager, que tiene todos mis certificados SSL configurados. Tengo casi todo en mi red existente configurado usando docker, por lo que nginx proxy manager es seguro de usar porque simplemente usa la red docker para hacer proxy a través de http.
En el caso de discourse, he intentado configurar discourse.MYDOMAIN.com a la dirección IP local separada bajo un registro A separado y logré que se resolviera; sin embargo, cómo nginx proxy manager tiene la configuración de lets encrypt y cómo discourse la tiene configurada no funciona para IPs internas.
Así que… solo quiero hacer un proxy inverso. Intentaré todo tipo de configuraciones de nginx proxy para que esto funcione. Me preocupa un poco el ataque de intermediario (man in the middle), pero me gustaría averiguar por qué la configuración de lets encrypt de nginx proxy manager funciona con la configuración interna y la de discourse no.
¡Tiene que haber una manera!
(P.D. Sé que estoy desquiciado. Por favor, hagan preguntas específicas y podré aclarar)
Hay algunos temas sobre la ejecución de Discourse detrás de nginx proxy manager. Básicamente, configuras Discourse para que no se vincule a ningún puerto y agregas las etiquetas necesarias en una sección labels: en tu app.yml.
Si opto por la ruta del nginx proxy manager, que es como lo tengo configurado ahora (en lugar de configurar Let’s Encrypt en la propia VM de Discourse)…
Aún necesitaría vincularme al puerto 80 en la VM de Discourse porque, en mi caso, es una máquina separada.
Mi experiencia actual es que estoy recibiendo errores de “Mixed Content” con mi configuración actual del nginx proxy manager con la configuración SSL allí apuntando a la dirección IP de la VM de Discourse en el puerto 80.
No creo que sea posible eliminar esto ya que las referencias http:// en el código están codificadas… ¿o me equivoco? ¿es eso lo que cambiaría el campo labels que mencionaste?
No puedo configurar el socket Unix… mi VM de Discourse está en una máquina separada. Volvamos al plan original. Déjame ver si puedo averiguar cómo habilitar force_https con otras publicaciones en el foro. Para tu información, este es el paso que no puedo hacer.
Pude hacerlo en la GUI como mencioné anteriormente.
@Falco, @pfaffman, @Jagster, @merefield… gracias a todos ustedes, he configurado con éxito el proxy inverso y ya no tengo esos errores de Contenido Mixto.
Una vez que hice el proxy inverso al puerto 80 de la VM de Discourse y pude registrarme y demás, se redujo a configurar force_https usando la GUI y agregar el indicador x-forwarded-proto en la pestaña avanzada del administrador de proxy de nginx.