El programa web se desarrolla con asp.net núcleo, el navegador solicita una página y el servidor debe pasar por el proxy inverso nginx al programa .NET para procesarlo, y durante la prueba de estrés, reportará un error 503:
Servicio 503 temporalmente indisponible 503 es un código de estado HTTP debido aMantenimiento temporal o sobrecarga del servidor, el servidor actualmente no puede procesar solicitudes。 Esta condición es temporal y se restaurará con el tiempo.
En términos generales, el error 503 se debe principalmente al gran número de visitas a la web, lo que resulta en un error causado por un tráfico excesivo o un gran número de concurrencias.
Según el análisis del principio del cañón, hay muchos factores que causan cuellos de botella en el rendimiento; en primer lugar, la referencia de ajuste de Linux es la siguiente:
A través de herramientas profesionales de prueba de presión, los resultados de la prueba de presión son los siguientes:
Afinación Nginx
worker_processes Configurado en Automático, de la siguiente manera:
Deja que nginx se adapte automáticamente a tus necesidades.
La configuración de los eventos es la siguiente:
Utiliza el modo epoll para aumentar el número de conexiones concurrentes, incrementar la capacidad de conexión concurrente del sistema nginx y establecer el número máximo de conexiones que pueden ser abiertas por los trabajadores al mismo tiempo. Introducción al documento:El inicio de sesión del hipervínculo es visible.
Tras la sintonización, se realiza la prueba de presión y no hay más error 503, como se muestra en la figura siguiente:
Si usas un proxy inverso nginx para reenviar a php-fpm, puedes obtener el siguiente error:
2022/01/16 16:08:01 [crítico] 968#0: *12955 open() "/alidata/www/itsvse_web/50x.html" fallido (24: Demasiados archivos abiertos), cliente: 100.116.153.2, servidor:www.itsvse.com, solicitud: "GET /forum.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "www.itsvse.com" 2022/01/16 16:08:01 [alerta] 968#0: *12956 socket() fallado (24: Demasiados archivos abiertos) al conectarse a la parte upstream, cliente: 100.116.153.109, servidor:www.itsvse.com, solicitud: "GET /forum.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "www.itsvse.com" 2022/01/16 16:08:01 [crítico] 968#0: *12956 open() "/alidata/www/itsvse_web/50x.html" fallido (24: demasiados archivos abiertos), cliente: 100.116.153.109, servidor:www.itsvse.com, solicitud: "GET /forum.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "www.itsvse.com"
Establezca los parámetros de worker_rlimit_nofile de la siguiente manera:
Documentación:El inicio de sesión del hipervínculo es visible.
(Fin)
|