Будет ли Apache 2 mod_proxy ждать и занять рабочего при длительном опросе?

Или: Как получить хорошую настройку cgi + long polling?

У нас есть (mod_perl) веб-приложение, работающее под Apache 2. Сохраняя существующий код как есть, мы также хотим сделать какой-то длинный опрос, но тогда мы займемся рабочим для каждого долгого запроса опроса и это не работает для нас.

Я уже знаю, как писать приложение, которое может обрабатывать множество запросов одновременно для обработки запросов с длинным опросом/кометами, но важно, чтобы у нас есть только один IP-порт, открытый для внешнего мира.

Введите обратный прокси с помощью mod-proxy. Я видел противоречивую информацию о том, будет ли mod-proxy ждать/блоки для возврата результата, не ждет/блок, или это зависит от "Transfer-Encoding: Chunked" . Что истинно, а что значит "Tranfer-Encoding" что-то делать?

Я также читал, что nginx лучше, чем Apache2 в обратном прокси. Я в порядке с размещением nginx перед apache, но только Apache2 будет проще. Я также читал отчеты о том, что загрузка/загрузка файлов, страницы ошибок, протоколирование могут быть проблематичными. Есть ли какие-то ошибки?

Говорите, что наш сервер для обработки запросов комет слушает localhost: 8080.

Итак, смогу ли я создать масштабируемую систему с множеством длинных клиентов опроса только с Apache + mod_proxy? С nginx перед Apache и нашим кометным сервером?

Это похоже на Понимание mod_proxy и Apache 2 для написания комет-сервера, но не совсем тот же вопрос.

1 ответ

Apache Httpd использует модель потока за соединение и быстро исчерпывает потоки при длительном опросе. Я столкнулся с этой проблемой при производстве с httpd, работающим как обратный прокси, и кажется, что нет способа сделать длинный опрос с httpd.

Рассмотрите возможность использования nginx (для не-java-серверов) или jetty (в качестве контейнера сервлетов j2ee), оба используют несколько запросов на модель потока и не подвержены этой проблеме.

licensed under cc by-sa 3.0 with attribution.