
En el proceso de mi pregunta aquí.El servidor de producción es mucho más lento que el servidor de prueba local al enviar una solicitud grandeEstoy tratando de comprender más profundamente qué hace realmente un servidor web, especialmente nginx. Básicamente quiero entender mejor la arquitectura que di por sentada durante mucho tiempo. Tal vez sea trivial, pero escúchame...
Estoy ejecutando una aplicación Django con nginx y gunicorn y estoy enviando solicitudes posteriores al servidor. Como estoy tratando de comprender dónde están mis problemas de rendimiento, quiero comprender en detalle cómo se tratan mis solicitudes.
Entonces estoy enviando una solicitud POST a través de la biblioteca requests
. Según tengo entendido, todos los datos enviados en Internet utilizan el HTTP
protocolo, por lo que básicamente los datos que envío se transmiten en formato de texto. ¿Correcto? ¿No existe ninguna interpretación de código de objetos/estructuras de datos de Python? Entonces, ¿el tamaño de una solicitud que llega a nginx es solo el tamaño de la solicitud convertida a formato de texto?
Según entiendo mejor, nginx ahora recibe esta solicitud en formato de texto y luego decide qué hacer con esta solicitud... Reenvía esta solicitud a mi aplicación web (django) (o tal vez mejor: mi servidor backend) donde está mi código. se está ejecutando y donde se escriben los datos en la base de datos.
Entonces, ¿nginx únicamente reenvía la solicitud y eso es todo? ¿O hace algo más?
Luego, el código o la base de datos arrojan un error o devuelven un mensaje de éxito a nginx que nginx devuelve como salida del servidor (como 404 o 405 o 201 o cualquier código...).
Entonces mi pregunta es: ¿Cómo trata nginx estas solicitudes de API y cómo se interpretan?
Respuesta1
nginx simplemente reenvía la solicitud a su servidor backend. No realiza ninguna operación adicional sobre los datos, excepto la compresión, si así se negocia con el cliente.
En el 99% de los casos, no hay nada en nginx que pueda afectar significativamente el rendimiento. Es la aplicación real la que debe analizarse para detectar problemas de rendimiento.