es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Errores de nginx con encabezados muy grandes

Cuando el usuario selecciona el filtro ‘Todos’ en nuestros paneles de control, la mayoría de las consultas fallan y obtenemos este error: 502 – Bad Gateway en Grafana. Si actualiza la página, los errores desaparecen y los paneles de control funcionan. Utilizamos un servidor nginx como proxy inverso y suponemos que el problema está relacionado con el tamaño de URI o los encabezados. Hicimos un intento de aumentar los buffers: largeclientheader_buffers 32 1024k. Un segundo intento fue cambiar el método de InfluxDB de GET a POST. Los errores han disminuido, pero aún ocurren constantemente. Nuestra configuración utiliza nginx + Grafana + InfluxDB.

Cuando se utiliza el filtro ‘Todos’ en nuestros paneles de control (la máxima cantidad de información posible), la mayoría de las consultas devuelven un error (502 – Bad Gateway) en Grafana. Tenemos Keycloak para autenticación y un servidor nginx, que funciona como proxy inverso frente a nuestro servidor de Grafana y de alguna manera el problema está relacionado con él, cuando se accede al servidor de Grafana directamente, a través de un túnel SSH, por ejemplo, no experimentamos el error.

Ejemplo de registro de error de nginx:

– – [22/Dic/2021:14:35:27 -0300] “POST /grafana/api/datasources/proxy/1/query?db=telegraf&epoch=ms HTTP/1.1” 502 3701 “https:///grafana/d/gQzec6oZk/compute-nodes-administrative-dashboard?orgId=1&refresh=1m” “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36” “-”

A continuación, se muestran capturas de pantalla del error en Grafana y las variables de configuración:

Variables que utilizamos en ellas en su totalidad

Error en Grafana

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Basado en el mensaje de error y los intentos realizados hasta ahora, parece que el problema está relacionado con el tamaño de los encabezados HTTP que se envían desde nginx a Grafana a través del proxy inverso. El mensaje de error indica que el servidor ascendente (Grafana) se niega a procesar la solicitud debido a que los encabezados son demasiado grandes.

    Para resolver este problema, puedes intentar los siguientes pasos:

    1. Aumenta el tamaño del búfer utilizado por nginx para almacenar los encabezados. Mencionaste que ya has intentado esto, pero es posible que necesites aumentar aún más el tamaño del búfer. Intenta aumentar el valor de large_client_header_buffers en tu archivo de configuración de nginx a un valor más alto, como 64 1024k.
    2. Desactiva la opción proxy_buffering en nginx. Esto se puede hacer agregando la siguiente línea a tu archivo de configuración de nginx: proxy_buffering off;. Esto evitará que nginx almacene en búfer la respuesta de Grafana y la envíe al cliente en fragmentos.

    3. Configura Grafana para permitir encabezados más grandes. Puedes hacer esto estableciendo la opción max_header_size en el archivo grafana.ini en un valor más alto, como 1048576 (1 MB). Esto permitirá que Grafana procese encabezados más grandes sin devolver un error 502.

    4. Si ninguno de los pasos anteriores funciona, intenta cambiar a otro servidor proxy inverso como Apache o HAProxy, y verifica si eso resuelve el problema.

    En resumen, el error 502 Bad Gateway en Grafana al usar el filtro All en tus paneles probablemente se deba al tamaño de los encabezados HTTP que se envían desde nginx a Grafana a través del proxy inverso. Para resolver este problema, puedes aumentar el tamaño del búfer utilizado por nginx, desactivar el almacenamiento en búfer del proxy, aumentar el max_header_size en Grafana o cambiar a otro servidor proxy inverso.

Comments are closed.