Red de conocimiento informático - Aprendizaje de programación - Libros de análisis del código fuente de Nginx

Libros de análisis del código fuente de Nginx

Ha ocurrido un error.

Lo sentimos, la página que estás buscando no está disponible actualmente.

Vuelve a intentarlo más tarde.

Si es el administrador del sistema de este recurso, debe consultar el registro de errores para obtener más detalles.

Atentamente, nginx.

Como se mencionó anteriormente, Lao Xu estaba planeando ir a la plataforma para escribir un artículo. El error anterior debería durar unos minutos. No sé cuántos usuarios lo sintieron. La plataforma respondió bien y volvió a la normalidad después de unos minutos ~

Estos errores informados por nginx generalmente tienen las siguientes razones (por supuesto, Lao Xu no sabe mucho sobre nginx, las siguientes son algunas de las posibles razones). ).

Si hay algún problema, lo primero es analizar el log de nginx y obtener algunas pistas~

Posibles causas comunes:

/ 1 /

Aparentemente, esto es un error de nginx. Durante el proceso de visualización del archivo nginx.conf, se pueden analizar los siguientes problemas. La configuración en nginx.xml es la siguiente:

La parte marcada en rojo es muy sospechosa. Resulta que hay muchas interacciones con el servidor en el momento en que la aplicación envía datos, y todas estas interacciones pasan a través de nginx. Además, la IP del usuario es la clave. Si el último salto de varios usuarios que acceden a Internet es el mismo enrutador, el servidor obviamente lo considerará como una computadora, lo que provocará un error de cálculo. Entonces surge una nueva pregunta. ¿Por qué aparece la página de error después de 503 Servicio no disponible?

Para solucionar este problema, encontramos otra configuración en nginx.conf, como se muestra en la siguiente figura:

Esta configuración significa que cuando ocurren los errores 500, 502, 503 y 504 cuando , regrese a la página 50x.html. Esta página está ubicada en la carpeta html del directorio de instalación de nginx. El contenido es el siguiente:

Esta página es analizada por el navegador y se parece a la primera imagen al principio.

En este punto, el motivo se ha estimado aproximadamente. El valor de la tasa anterior debería ser relativamente grande. ¿Qué tan grande es? Esto depende de diferentes negocios, incluso si se elimina esta configuración, por lo que este es un valor empírico y el valor razonable en relación con la aplicación se puede obtener a través de múltiples experimentos, por lo que no entraré en eso aquí.

Debería haber muchas razones para este error en nginx. Aquí hay una posible razón para su referencia.

/ 2 /

En muchos casos, el código de estado HTTP muestra un error 499 en el registro. Una situación que encontré fue que a nginx se le realizó ingeniería inversa para convertirlo en un backend que nunca se pudo abrir, y eso fue todo. El registro de estado del registro es 499 y el número de bytes enviados es 0.

Siempre hay usuarios que informan que el sistema del sitio web tiene altibajos. Debido a que los productos en línea no se han modificado durante mucho tiempo, el problema con el programa front-end básicamente se puede eliminar. Pensé que la interfaz llamada por el método Get era inestable y le pregunté al personal relevante. Dijo que no había ningún problema. Para obtener evidencia definitiva, le pedí al personal relevante el archivo de registro del servidor nginx (registro awstats). Después del análisis, encontré muchos errores en los registros y el código de error fue 499. Representa aproximadamente 1 de todo el archivo de registro, pero solo representa aproximadamente 70 de todos los errores informados (consulte la figura siguiente para ver todos los errores informados), por lo que la suma de todos los errores informados excederá 1, que sigue siendo muy grande.

¿Qué es un error 499? Veamos la definición en el código fuente de NGINX:

ngx _ string(ngx _/2008/12/27/talk-about-RC-local . html "Tell me?/etc/rc. d/ rc.local "

Buscar:

/usr/local/PHP/sbin/PHP-fpm start, ¿qué es php-fpm primero?

¿Es el Administrador de procesos FastCGI, que es un modo de ejecución PHP FastGCI opcional que tiene una aplicación muy distintiva, especialmente en un sitio web ocupado:

(1) Regeneración adaptativa (¡nuevo!)

(2 )Función de estadísticas básicas (mod_status de Apache)

(3)Función de gestión de procesos avanzada, que se puede detener/iniciar con gracia

(4) Capacidad de utilizar diferentes usuarios que trabajan y diferentes php. .ini

(5) Registro de entrada y salida...

Después de abrir, ¡todo vuelve a la normalidad! Todavía hay muchos lugares donde la tecnología de terminal no se utiliza lo suficiente. ¡aprenda a usarlo más!

Resumen:

1. Intente verificar la configuración de nginx.conf para ver si hay restricciones. Los parámetros como limit_zone y limit_conn también influyen.

2. Verifique el firewall para ver si hay alguna configuración relevante.

3. Verifique la configuración de nginx.conf para ver si hay alguna configuración de vínculo de retroceso válida. _ referrernone está bloqueado

4. Verifique si el acceso a archivos estáticos es normal y elimine los errores~

Está bien, lo anterior son solo algunas conjeturas~

Razones específicas , análisis específico ~

Cada vez más sistemas usan nginx, es necesario que todos comprendan nginx ~