Red de conocimiento de abogados - Derecho de sociedades - Acerca del informe tr?fik: análisis y solución de http: problema de conexión inactiva del servidor cerrado

Acerca del informe tr?fik: análisis y solución de http: problema de conexión inactiva del servidor cerrado

Después de iniciar la nueva versión del software, el sistema a menudo encuentra un error interno del servidor 500 y problemas 502 de vez en cuando.

La siguiente es la arquitectura general del software.

La solicitud se inicia desde el cliente del navegador, primero va al balanceador de carga y luego el balanceador de carga la reenvía a traefik y traefik lo reenvía a un puerto de servidor específico; detrás del puerto del servidor está el servicio web real. Por supuesto, primero pasa a través de la capa uwsgi y luego ingresa al servidor web.

Cuando ocurre un error interno del servidor 500, verifique la solicitud específica y encuentre tres pistas:

1. La solicitud fue interrumpida entre traefik y uwsgi

2; Tiene algo que ver con la conexión larga de http;

Para la misma solicitud, la primera solicitud viene con el encabezado Connection:keep-alive. Traefik cree que se ha establecido un canal de conexión largo con uwsgi. , sino porque uwsgi no admite conexiones largas y cerrará la conexión después de regresar. Cuando llega la misma segunda solicitud, traefik todavía usa el canal anterior y uwsgi ha cerrado la conexión en este momento, por lo que se informa un error: http: el servidor cerró la conexión inactiva.

Veamos uwsgi.ini en el sistema:

Aunque http-keepalive parece estar configurado, es inútil porque http-socket no admite keep-alive.

El método de configuración correcto es el siguiente:

Autor @yaoel

11 de mayo de 2017

1. Traefik falla esporádicamente al realizar proxy solicitudes

2. Opciones de uWSGI

3. Guía definitiva de HTTP 4.5.6 Keep: proxy vivo y tonto

4. http-socket no admite Keep -Alive

5. Referencia de configuración de uwsgi.ini