Повторное использование соединения с Curl, Apache и mod_wsgi - PullRequest
0 голосов
/ 29 июня 2009

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

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

В конце каждого HTTP-запроса заголовок ответа HTTP имеет «Connection: Close»

Это то же самое, что Keep-Alive? Что мне нужно сделать на стороне Apache / Mod_wsgi для повторного использования соединения?

1 Ответ

3 голосов
/ 29 июня 2009

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

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...