Повторное использование соединения с помощью Curl, Apache и mod_wsgi

StackOverflow https://stackoverflow.com/questions/1056643

Вопрос

Я развертываю приложение mod_wsgi поверх Apache, и у меня есть клиентская программа, которая использует Curl.

В CURL api на стороне пользователя я пытаюсь повторно использовать соединение, но, глядя на соединения из wireshark, я вижу, что для каждого HTTP-запроса / ответа создается новое соединение.

В конце каждого HTTP-запроса заголовок HTTP-ответа содержит "Connection:Закрыть"

Это то же самое, что Поддерживать жизнь?Что мне нужно сделать на стороне Apache / Mod_wsgi, чтобы разрешить повторное использование соединения?

Это было полезно?

Решение

Обычно вам не нужно было бы ничего делать с Apache, поскольку поддержка подключений keep alive обычно включена по умолчанию.Посмотрите на директиву KeepAlive в конфигурации Apache, чтобы определить, на что она настроена.

Вдобавок ко всему, чтобы соединения keep alive работали, приложение WSGI должно задавать длину содержимого в ответе или возвращать список для ответа, где список содержит только одну строку.В этом последнем случае mod_wsgi автоматически добавит длину содержимого для ответа.Ответ, как правило, также должен быть успешным, поскольку большинство ответов с ошибками в любом случае приведут к закрытию соединения.

Даже после всего этого проблема заключается в том, использует ли вообще способность curl извлекать несколько URL-адресов соединения keep alive.Очевидно, что отдельные вызовы curl не смогут этого сделать, так что то, что вы даже задаете эти вопросы, предполагает, что вы пытаетесь использовать эту функцию curl.Единственным другим вариантом было бы, если бы вы использовали пользовательский клиент, связанный с libcurl, и использовали его библиотеку, и поэтому вы имели в виду libcurl.

Обратите внимание, что если доступ к Apache осуществляется через прокси-сервер, прокси-сервер может не реализовать функцию keep alive и, таким образом, остановить работу всего механизма.

Чтобы предоставить больше информации, необходимо знать о том, как вы используете curl.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top