He estado usando el balanceador de carga SLB de Alibaba Cloud durante más de 5 años, y lo he estado usando desde la beta interna inicial de Alibaba Cloud, y tras el despliegue, apareció el siguiente error:
502 Puerta de Entrada Mala
Los errores ocurren de forma intermitente, tras arrancar inicialmente, no aparece un error de gateway 502; tras esperar un minuto, aparece el error, el contenedor backend de Windows Server IIS ASP.NET sitio web.
Haz clic en IIS desde el servidor para abrir el navegador, puedes navegar normalmente, problemas indirectos de balanceo de carga en SLB, es la primera vez que me encuentro con esto.
Solución:
El problema aparece principalmente en la configuración de "Método de revisión de salud", los ajustes por defecto son los siguientes:
La comprobación de estado del backend se solicita en el headway, y si el código de estado correspondiente devuelve 2xx o 3xx, el servidor backend se considera normal.
Intentamos hacer una petición de encabezado de tres maneras: primero, ejecuté directamente el proyecto local y lo probé localmente.
Prueba 1:
Utiliza la prueba del cartero como se muestra a continuación:
Volviendo al estado 404 No Encontrado, de hecho, aquí sabemos qué lo causó.
Prueba 2:
Utiliza la prueba de rizos como se muestra a continuación:
C:\Users\itsvse>curl -i -X HEAD http://localhost:60155/
Warning: Setting custom HTTP method to HEAD with -X/--request may not work the
Warning: way you want. Consider using -I/--head instead. HTTP/1.1 404 No encontrado
Cache-Control: private
Content-Length: 4432
Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/10.0
X-SourceFiles: =?UTF-8?B?QzpccHJvamVjdFxteVxDb2RlU2hhcmluZ1xDb2RlU2hhcmluZy5XZWJVSVxIb21lXEVycm9yNDA0?=
X-Powered-By: ASP.NET
Date: Tue, 13 Aug 2019 03:53:04 GMT
curl: (56) Recv failure: Connection was reset
También se ha devuelto un código de estado 404.
Prueba 3:
Esta vez, probamos directamente en el servidor oficial, mediante la prueba de rotación bajo PowerShell, como se muestra en la figura siguiente:
Puedes ver que la misma página se solicita a través del encabezado,A veces regresa404código de estado, a veces devuelto200Código de estado, confirmando así los errores intermitentes 502 que encontramos al principio.
¿Qué causa asp.net devolver de forma intermitente los códigos de estado 404 y 200?
Como nuestra página principal tiene caché, cuando el usuario usa el método get para solicitar la página principal, la página se almacenará en caché correctamente, y entonces el head y get siempre devolverán la página en caché, y también devolverán el código de respuesta 200; si, después de que la caché expire, ningún usuario realiza una solicitud de método get, solo la solicitud de método head a través del comando, ocurrirá un error 404. Se estima que pocas personas se enfrentarán a este tipo de problema.
La solución es comprobar todos los códigos de estado de respuesta en el modo de revisión de salud, como se muestra en la figura siguiente:
Cómo solucionar las anomalías en la revisión de salud de la Escucha de Capa 7 (HTTP/HTTPS):El inicio de sesión del hipervínculo es visible.
(Fin)
|