Как правильно соединить клиентские соединения между внешним веб-сервером и серверной частью, на которой работает CherryPy? - PullRequest
1 голос
/ 06 октября 2010

Название может быть немного расплывчатым, но вот моя цель: у меня есть веб-сервер внешнего интерфейса, который принимает входящие HTTP-запросы, выполняет некоторую предварительную обработку их, а затем передает запросы на мой real веб-серверполучить ответ HTTP, который затем передается обратно клиенту.

В настоящее время мой внешний интерфейс состоит из BaseHTTPServer.HTTPServer, а внутренний - CherryPy.

Итак, вопрос: есть лиспособ получить эти HTTP-запросы / клиентские подключения и вставить их на сервер CherryPy, чтобы получить ответ HTTP?Одним из очевидных решений является запуск экземпляра серверной части CherryPy на локальном порту или использование доменных сокетов UNIX, а затем веб-сервер внешнего интерфейса устанавливает соединение с серверной частью и передает любые запросы / ответы.Очевидно, что это не идеально из-за накладных расходов.

Что мне действительно нравится, так это то, что бэкэнд CherryPy для не привязывается к какому-либо порту, а просто сидит и ждет внешнего интерфейсапередать клиентский сокет (а также измененную информацию HTTP-запроса), после чего он выполняет свою обычную магию CherryPy и возвращает запрос непосредственно клиенту.

Я просматривал источник CherryPy, чтобы найтикакой-то способ сделать это, и в настоящее время я пытаюсь изменить wsgiserver.CherryPyWSGIServer, но это становится довольно волосатым и, вероятно, не лучшим подходом.

Ответы [ 2 ]

1 голос
/ 06 октября 2010

Является ли ваше основное приложение приложением wsgi? Если это так, вы можете написать некоторое связующее программное обеспечение , которое обернется вокруг него и выполнит весь запрос перед тем, как перейти к основному приложению.

Если это возможно, вам не нужно запускать два веб-сервера и все проблемы, с которыми вы сталкиваетесь.

0 голосов
/ 07 октября 2010

Ответ на вопрос об обновлении на Обработка запросов на обновление HTTP / 1.1 в CherryPy .Не уверен, что это адрес или нет.

...