У меня странная ситуация. Мне нужно вызвать программу в 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.
Но я не уверен, что это решит вашу проблему.