Назад | Перейти на главную страницу

ошибка 20014 с mod_proxy

У меня странная ситуация. Мне нужно вызвать программу в cgi-bin из сценария perl. Когда я пытаюсь сделать это с exec($program), Я получил

(20014)Internal error: proxy: error reading status line from remote server
proxy: Error reading from remote server returned by ...

Долгая история ... я звоню mapserv (http://mapserver.org) как программу cgi из OpenLayers (http://openlayers.org). Обычно мой веб-сайт обслуживается Perl Dancer, но вызовы картографического сервера выполняются напрямую http://server/cgi-bin/mapserv из JavaScript. Веб-сайт Dancer обслуживается Starman за интерфейсом прокси-сервера Apache2. Вот как это выглядит

[browser] -> http://server/app -> [apache2] -> proxy port 5000 -> Starman
    |
    |
    +-> http://server/cgi-bin/mapserv -> [apache2] -> cgi-bin -> mapserv

Это то, что я пытаюсь достичь

[browser] -> http://server/app -> [apache2] -> proxy port 5000 -> Starman
                                                                    |
                                                                    |
                               mapserv <-- cgi-bin <-- [apache2] <--+

Я видел этот вопрос по поводу: 20014 ошибка, но предложенное решение не помогло.

Есть еще какие-нибудь подсказки?

Я не уверен, какую версию Apache вы используете. У меня была аналогичная проблема с Apache 2.2.22, и документация Apache предлагает следующее:

прокси-начальный-не-пул

Если эта переменная установлена, объединенное соединение не будет повторно использоваться, если клиентское соединение является начальным. Это позволяет избежать сообщения об ошибке «прокси: ошибка чтения строки состояния с удаленного сервера», вызванного состоянием гонки, когда внутренний сервер закрыл объединенное соединение после проверки соединения прокси-сервером и до того, как данные, отправленные прокси-сервером, достигли бэкэнда. Следует иметь в виду, что установка этой переменной снижает производительность, особенно с клиентами HTTP / 1.0.

Но я не уверен, что это решит вашу проблему.