Un 500 Internal Server Errorerror 500 indica que la solicitud del servidor falló; no especifica qué componente falló. Para un panel de control de BigBlueButton Greenlight, comience por encontrar la solicitud fallida en los registros de la aplicación Greenlight. La guía de solución de problemas de BigBlueButton indica que un error 500 probablemente se deba a un error de Greenlight. La excepción es útil: si solo algunos equipos de una red local lo ven y el registro informa un "Error de host no seguro", es posible que esté relacionado con la configuración del proxy del navegador.
Greenlight v3 es la versión documentada actual y utiliza un esquema de implementación diferente al de la versión anterior v2. Esta guía le ayudará a identificar su versión, recopilar la información necesaria y verificar las causas comunes de forma segura. Se asume una implementación de Greenlight basada en Docker. Utilice los comandos como administrador del servidor y adapte el nombre y la ruta del contenedor si su instalación es diferente.
Entienda qué componente está devolviendo 500.
Greenlight es la aplicación web que se utiliza para iniciar sesión, administrar salas y comenzar reuniones de BigBlueButton. Un proxy inverso , como Nginx, recibe las solicitudes del navegador y las reenvía a Greenlight. Greenlight se comunica con la API de BigBlueButton y utiliza servicios como PostgreSQL y Redis. Un error 500 puede originarse en Greenlight, en un proxy o en una dependencia; reiniciar los servicios multimedia de BigBlueButton no solucionará una excepción de base de datos o de la aplicación.
Primero, anote qué acción desencadena el error: abrir el panel de control, iniciar sesión, cargar la lista de salas o iniciar una reunión. Registre la ruta URL, la hora aproximada, si todos los usuarios se ven afectados y cualquier cambio reciente, como una actualización, una modificación de DNS, un cambio de proxy o una rotación de credenciales. Si la página de inicio se carga, pero una acción devuelve un error 500, esto reduce la necesidad de investigar el problema.
Prepárate antes de cambiar nada.
- Confirme si la imagen es
bigbluebutton/greenlight:v3una imagen v2 o una compilación personalizada. No aplique las instrucciones de la versión 2 a la versión 3.
- Guarda una copia del archivo Docker Compose y del archivo de entorno correspondientes en un lugar seguro antes de editarlos. Contienen credenciales.
- Registre la marca de tiempo del error e inspeccione solo un breve intervalo de tiempo en el registro. Oculte las contraseñas, los tokens de acceso, los secretos de la API, las direcciones de correo electrónico y los enlaces a reuniones privadas antes de compartir los registros.
- No ejecute comandos
docker compose down -v, elimine volúmenes de base de datos ni borre el almacenamiento de Greenlight para "restablecer" el panel de control. Estas acciones pueden dañar cuentas, configuraciones o archivos cargados.
Paso 1: Compruebe los contenedores en ejecución y capture la excepción.
En el host de Docker, enumere los contenedores relacionados con Greenlight, sus imágenes y su estado:
sudo docker ps -a --filter name=greenlight \
--format 'table {{.Names}}\t{{.Image}}\t{{.Status}}'
Para la instalación estándar de Greenlight v3, el contenedor de la aplicación se denomina comúnmente greenlight-v3. Lea su salida reciente en el momento del fallo:
sudo docker logs --since=15m --tail=200 greenlight-v3
Si su instalación utiliza Compose, ejecute docker compose psy docker compose logs --since=15m --tail=200desde el directorio que contiene su archivo Compose. La instalación de BigBlueButton puede mantener los archivos v3 en ~/greenlight-v3; las instalaciones independientes pueden ser diferentes. Utilice la ubicación real y los nombres de contenedor informados por su host. Para instalaciones v2 más antiguas, revise el registro de Rails montado, generalmente log/production.logdentro del directorio de instalación de Greenlight, o inspeccione /usr/src/app/log/production.logen el contenedor si no está montado.
Busque la primera excepción en el momento de la solicitud fallida, no solo la respuesta final 500. Los errores de conexión a la base de datos, los errores de Redis, los fallos en las solicitudes de API, los errores de validación de certificados y las excepciones de Rails apuntan a diferentes soluciones. Si el contenedor ha finalizado, sus registros aún pueden estar disponibles a través de docker logs.
Paso 2: Compruebe la conexión de Greenlight con BigBlueButton.
Cuando el panel de control falla al cargar salas o iniciar una reunión, verifique la URL de BigBlueButton y la clave secreta compartida que utiliza Greenlight. Para la versión 3, el archivo de entorno incluye BIGBLUEBUTTON_ENDPOINTy BIGBLUEBUTTON_SECRET. El punto final debe ser la URL de la API de su implementación, no un host adivinado ni una URL de reunión solo para navegador. Si utiliza un balanceador de carga como Scalelite, utilice el punto final y las credenciales proporcionadas para esa configuración.
En el servidor de BigBlueButton, sudo bbb-conf --secretse muestran la URL y la clave secreta configuradas. Compárelas en privado con los valores de Greenlight. No copie ni pegue la clave secreta en un ticket, una transcripción de la consola ni en un chat público. Una clave secreta obsoleta tras una reinstalación o una rotación de credenciales puede provocar fallos en las llamadas a la API, incluso si el contenedor del panel de control funciona correctamente.
También se ejecuta sudo bbb-conf --checken el host de BigBlueButton. Comprueba los servicios de BigBlueButton y los problemas de configuración comunes; no reemplaza la revisión de los registros de Greenlight. Si Greenlight se encuentra en un host independiente, este comando debe ejecutarse en el servidor de BBB donde bbb-confestá instalado.
Paso 3: Compruebe la base de datos, Redis y las actualizaciones recientes.
El entorno de ejemplo de Greenlight v3 define las conexiones de base de datos y caché con DATABASE_URLy REDIS_URL. Confirme que los contenedores de PostgreSQL y Redis estén en ejecución y que los valores en el entorno de la aplicación coincidan con los nombres de servicio, puertos, nombre de base de datos y credenciales de Compose. Un contenedor Greenlight que aparentemente funciona correctamente aún puede devolver un error 500 si no puede acceder a alguna de estas dependencias.
Si el error comenzó después de una actualización, compare la etiqueta de la imagen desplegada, el archivo Compose y el archivo de entorno con el procedimiento de lanzamiento que siguió. Evite descargar una imagen arbitraria o modificar manualmente el esquema de la base de datos durante el diagnóstico en producción. Primero, realice una copia de seguridad de la base de datos y, a continuación, utilice el proceso de actualización Greenlight documentado para su instalación. Compruebe también el espacio en disco: un volumen lleno puede impedir las escrituras en PostgreSQL, las escrituras de registros o las actualizaciones del almacenamiento de activos.
Paso 4: Compruebe la configuración del proxy, el nombre de host y la subruta.
Si el error aparece solo a través del nombre de host público, verifique la ruta desde el navegador a través del proxy inverso hasta Greenlight. Confirme que el proxy reenvía al puerto interno correcto y conserva los encabezados de host y protocolo esperados. Pruebe la configuración del proxy antes de recargar Nginx con sudo nginx -t, y luego revise el registro de errores del proxy en la marca de tiempo correspondiente.
Greenlight v3 espera ejecutarse en la ruta raíz por defecto. Si se publica en una ruta como /gl, sus RELATIVE_URL_ROOTreglas de proxy inverso deben coincidir. La guía de instalación oficial indica que un cambio en la raíz de la URL relativa requiere una actualización/reconfiguración a través del procedimiento de instalación; establecer una variable de shell por sí solo no soluciona una implementación existente que no coincide. Una discrepancia suele causar redirecciones o recursos rotos, pero una solicitud de proxy fallida puede manifestarse como un error de la aplicación.
BigBlueButton documenta un caso específico de LAN: si solo algunos equipos detrás de un proxy reciben el error 500 y el registro de Greenlight contiene Error::Unsafe Host Error, compruebe que Windows esté configurado para omitir el proxy para direcciones locales o de intranet. Este es un problema de ruta de red del cliente, no un motivo para deshabilitar la validación de host globalmente.
Paso 5: Revisar la autenticación y los cambios de correo electrónico.
Si se produce un error 500 durante el inicio de sesión, compruebe los cambios recientes en la configuración de OpenID Connect, las URL de devolución de llamada o el proveedor de identidad. Greenlight v3 utiliza valores como OPENID_CONNECT_ISSUER, OPENID_CONNECT_CLIENT_ID, y OPENID_CONNECT_REDIRECTcuando se configura la autenticación externa. Confirme que la URL de redireccionamiento coincide con la URL pública de Greenlight, incluyendo cualquier subruta configurada, y revise los registros de Greenlight y del proveedor de identidad para verificar que tengan la misma marca de tiempo.
La documentación de Greenlight v3 indica que el correo electrónico es necesario para las funciones básicas de la plataforma. Si el panel de control falla durante una invitación, un registro, un restablecimiento de contraseña u otra acción relacionada con el correo electrónico, verifique la conectividad y las credenciales SMTP, la configuración TLS y el registro de la aplicación. Mantenga la confidencialidad de las credenciales SMTP. Un fallo limitado a acciones relacionadas con el correo electrónico es un indicio para investigar la configuración del correo antes de cambiar las credenciales de la API de BigBlueButton.
Reiniciar solo después de identificar la causa probable.
Una vez que corrija un problema confirmado de entorno o proxy, reinicie el servicio Greenlight afectado utilizando el archivo Compose para esa instalación. Por ejemplo, desde el directorio de instalación v3:
cd ~/greenlight-v3
sudo docker compose ps
sudo docker compose restart greenlight-v3
Los nombres de los servicios de composición pueden diferir de los nombres de los contenedores. Si el comando de reinicio indica que el servicio es desconocido, inspeccione docker compose config --servicesy reinicie el servicio Greenlight especificado o utilice el comando de actualización documentado para la implementación. Evite reiniciar PostgreSQL o eliminar volúmenes a menos que los registros muestren un problema de dependencia y tenga un plan de recuperación.
Verificar la solución y saber cuándo escalar el problema.
Repita la acción que falló anteriormente y, a continuación, compruebe la respuesta en el navegador y el registro de Greenlight en la nueva marca de tiempo. Confirme que los usuarios pueden acceder al panel de control y, si el fallo original involucró una reunión, inicie una reunión de prueba. Si la bbb-conf --checkprueba se completa con éxito, pero la aplicación sigue devolviendo un error 500, esto indica que la investigación debe centrarse en Greenlight, sus dependencias o el proxy.
Si el problema persiste, proporcione la versión de Greenlight o la etiqueta de imagen, el tipo de implementación, la ruta URL afectada, la hora del fallo, la excepción relevante (oculta), el estado del contenedor y los cambios recientes. No comparta archivos de entorno completos, secretos de API, contraseñas de bases de datos, cookies de sesión de usuario ni registros sin censurar.
Para la interpretación oficial de los errores 500, consulte la guía de solución de problemas de BigBlueButton , así como la documentación de instalación y configuración de Greenlight v3 para el modelo de implementación actual. El archivo de entorno de ejemplo de Greenlight v3 del proyecto enumera las variables de entorno compatibles. Greenlight v2 y v3 son diferentes, por lo que debe usar la documentación que corresponda a su versión implementada.