Wie behandelt Nginx API-Anfragen?

Wie behandelt Nginx API-Anfragen?

Im Zuge meiner Frage hierProduktionsserver beim Senden großer Anfragen viel langsamer als lokaler TestserverIch versuche, besser zu verstehen, was ein Webserver – insbesondere nginx – eigentlich macht. Im Grunde möchte ich die Architektur besser verstehen, die ich lange Zeit für selbstverständlich gehalten habe. Vielleicht ist es trivial, aber hören Sie mir bitte zu ...

Ich führe eine Django-App mit Nginx und Gunicorn aus und sende Post-Requests an den Server. Da ich versuche herauszufinden, wo meine Leistungsprobleme liegen, möchte ich im Detail verstehen, wie meine Anfragen behandelt werden.

Ich sende also eine POST-Anfrage über die Bibliothek requests. So wie ich es verstehe, verwenden alle im Internet gesendeten Daten das HTTP-Protokoll, sodass die von mir gesendeten Daten grundsätzlich im Textformat übertragen werden. Richtig? Es gibt keinerlei Codeinterpretation von Python-Objekten/Datenstrukturen? Die Größe einer Anfrage, die Nginx erreicht, ist also nur die Größe der ins Textformat konvertierten Anfrage?

So wie ich das weiter verstehe, empfängt nginx diese Anfrage jetzt im Textformat und entscheidet dann, was mit dieser Anfrage zu tun ist … Es leitet diese Anfrage an meine Webanwendung (Django) weiter (oder vielleicht besser: meinen Backend-Server), wo mein Code ausgeführt wird und wo die Daten in die Datenbank geschrieben werden.

Leitet nginx also lediglich die Anfrage weiter und das war’s? Oder macht es noch etwas anderes?

Dann wirft der Code oder die Datenbank einen Fehler aus oder gibt eine Erfolgsmeldung an nginx zurück, die nginx als Serverausgabe zurückgibt (wie 404 oder 405 oder 201 oder welcher Code auch immer ...).

Meine Frage lautet also: Wie behandelt Nginx diese API-Anfragen und wie werden sie interpretiert?

Antwort1

nginx leitet die Anfrage einfach an Ihren Backend-Server weiter. Es führt keine weiteren Operationen an den Daten aus, außer der Komprimierung, wenn dies mit dem Client vereinbart wurde.

In 99 % der Fälle gibt es in nginx nichts, was die Leistung erheblich beeinträchtigen könnte. Es ist die eigentliche Anwendung, die auf Leistungsprobleme analysiert werden muss.

verwandte Informationen