Ejecuta otros sitios web en la misma máquina que Discourse

Entonces, ¿quieres Servir Discourse desde una subcarpeta (prefijo de ruta) en lugar de un subdominio?

1 me gusta

Genial. Suena como lo que estoy buscando. Gracias.

1 me gusta

¿Cómo puedo entrar en esto? Quiero decir, ¿cómo encuentro esa parte? ¡Hay 2 conjuntos de las mismas líneas! ¿Cuáles se deben editar o cambiar?

EDITAR desde aquí:

¡Olvídalo, tío! ¡Gracias por tu tiempo! Lo resolví yo mismo :upside_down_face:

Por cierto, tu método no está funcionando del todo.

2 Me gusta

También necesitas configurar las variables de entorno al menos en discourse 3.

Abre tu app.yml

y busca las variables de entorno y rellénalas.

Gracias por esto,
configuré primero Discourse independiente, que me muestra la página de registro correcta en http. Luego instalé nginx pero sin certificado, porque lo uso en un laboratorio de pruebas sin acceso a Let’s Encrypt. Ahora veo la página de registro, pero sin estilo. En los registros de nginx en el host, veo errores 404. ¿Alguna idea para resolver esto?
Gracias
Solucionado: tengo que comentar try_files $uri $uri/ =404;", que es el valor predeterminado en Debian 11 y Nginx 18.0-6.

1 me gusta

Errores. Después de configurar esto, el navegador Chrome muestra errores:

Contenido mixto: la página en '\u003cURL\u003e' se cargó a través de HTTPS, pero solicitó una fuente insegura '\u003cURL\u003e'. Esta solicitud ha sido bloqueada; el contenido debe servirse a través de HTTPS.

1 me gusta

¿Activaste force_https?

1 me gusta

Sí, lo hice en el paso certbot --nginx. Y lo he intentado muchas veces, no funcionó.

Debes configurar el ajuste de Discourse force_https, no en nginx. Lo mejor es hacerlo con una variable de entorno, pero puedes hacerlo en la interfaz de usuario si puedes acceder a admin/settings.

2 Me gusta

Seguí los pasos anteriores y ejecuté nginx correctamente, pero al acceder a la URL, recibí un error ERR_TOO_MANY_REDIRECTS.



¿Alguien puede ayudarme a entender por qué?

bind() a unix:/shared/nginx.http.sock falló (95: Operación no admitida)

Entonces estoy confundido, no puedo ejecutar /discourse-setup porque lo estoy instalando en un servidor web existente, sin embargo, se supone que debo editar un archivo .yml que no se crea a menos que ejecute /discourse-setup. Por lo tanto, app.yml no existe, ¿cómo lo edito?

Copia standalone.yml del directorio de muestras.

Me siento idiota después de haber revisado esta publicación veinte veces y haber pasado por alto que la última línea de esa sección decía “Añadido”. ¿Podría sugerir que @riking modifique la introducción para que sea así:

1 me gusta

Hice el cambio sugerido (y borré las publicaciones sobre si era una wiki que aparentemente tu nivel de confianza te impide editar, lo siento por eso). Es un cambio sutil, pero creo que podría ayudar a otros. Gracias.

2 Me gusta

Tengo una configuración ligeramente diferente: mi proxy inverso no se está ejecutando en la máquina host, sino en un contenedor docker separado.
Actualmente estoy usando una red docker para conectar ambos, por lo que no expongo discourse a través de un socket unix.

Funciona bien, pero tiene un inconveniente importante: el limitador de velocidad solo ve la IP del proxy inverso y, por lo tanto, limita erróneamente la velocidad del proxy inverso…

Veo varias opciones:

  1. Eliminar la plantilla de limitación de velocidad. (¡No es una gran opción!)
  2. Crear mi propia plantilla que configure nginx para set_real_ip_from el proxy inverso.
  3. Ajustar la plantilla de limitación de velocidad para usar $http_x_forwarded_for en lugar de $binary_remote_addr.
  4. Exponer el socket unix en el contenedor del proxy inverso. (No sé si es posible y cómo.)

Idealmente, no crearía mi propia plantilla ni cambiaría las existentes, sino que usaría la configuración predeterminada lo más cerca posible, es decir, la opción 4.

¿Alguna idea? ¿Pros/contras? ¿Opiniones?

Entiendo que tuviste este problema hace mucho tiempo, pero me acaba de suceder esta noche y encontré una solución que me funcionó.

Mi problema era con mi registrador actuando como un proxy con la configuración de SSL/TLS establecida en “flexible”. Cambiarla a “Full” resolvió el problema de inmediato; solo desearía que se me hubiera ocurrido antes de reconstruir ~20 veces.

1 me gusta

¿Qué se entiende por una instalación de dos contenedores? Gracias.

1 me gusta

Un contenedor es un concepto de Docker y es efectivamente una unidad de procesamiento aislada que puede tener una configuración independiente del sistema operativo.

Normalmente, Discourse y todas sus dependencias (en la instalación estándar) se ejecutan en un solo contenedor.

Existen instalaciones más avanzadas donde otros servicios pueden ejecutarse en otro contenedor e incluso una donde Discourse se divide en dos (una para la base de datos y otra para la web), una “instalación de dos contenedores”.

NB Discourse utiliza su propio lanzador a medida que no es exactamente el mismo que el utilizado por el docker estándar.

5 Me gusta

Tengo una pregunta: si un proxy inverso está en un contenedor Docker separado, ¿aún puede usar sockets Unix?