Как nginx обрабатывает запросы API?

Как nginx обрабатывает запросы API?

В процессе моего вопроса здесьПроизводственный сервер намного медленнее локального тестового сервера при отправке больших запросовЯ пытаюсь глубже понять, что на самом деле делает веб-сервер, особенно nginx. По сути, я хочу лучше понять архитектуру, которую я долгое время принимал как должное. Может, это и тривиально, но, пожалуйста, выслушайте меня...

Я запускаю приложение django с nginx и gunicorn и отправляю post-запросы на сервер. Поскольку я пытаюсь понять, где у меня проблемы с производительностью, я хочу подробно разобраться, как обрабатываются мои запросы.

Итак, я отправляю POST-запрос через библиотеку requests. Насколько я понимаю, все данные, отправляемые в интернет, используют -протокол HTTP, поэтому в основном отправляемые мной данные передаются в текстовом формате. Правильно? Нет никакой интерпретации кода объектов/структур данных Python вообще? То есть размер запроса, достигающего nginx, — это только размер запроса, преобразованного в текстовый формат?

Насколько я понимаю, nginx теперь получает этот запрос в текстовом формате, а затем решает, что с ним делать... Он пересылает этот запрос моему веб-приложению (django) (или, может быть, лучше: моему внутреннему серверу), где выполняется мой код и где данные записываются в базу данных.

Так nginx просто пересылает запрос и всё? Или он делает что-то ещё?

Затем код или база данных выдают ошибку или возвращают nginx сообщение об успешном выполнении, которое nginx возвращает в качестве выходных данных сервера (например, 404, 405, 201 или какой-либо другой код...).

Итак, мой вопрос: как nginx обрабатывает эти запросы API и как они интерпретируются?

решение1

nginx просто пересылает запрос на ваш бэкенд-сервер. Он не выполняет никаких дополнительных операций с данными, кроме сжатия, если это согласовано с клиентом.

В 99% случаев в nginx нет ничего, что могло бы существенно повлиять на производительность. Анализировать на предмет проблем с производительностью нужно само приложение.

Связанный контент