it-swarm.com.de

Der Proxy-Server hat eine ungültige Antwort von einem Upstream-Server erhalten

Wir haben eine Anwendung auf Tomcat implementiert. Um auf die Anwendung zuzugreifen, verwenden wir Apache, der Anfragen an Tomcat sendet. Zufälliger Browser gibt folgende Antwort.

Proxy Error
The proxy server received an invalid response from an upstream server.
The proxy server could not handle the request GET /sampleapp/<http://samplehost.com:8080/sampleapp/>.
Reason: Error reading from remote server
________________________________
Apache/2.2.21 (Unix) Server at samplehost.com Port 8080

Dieser Fehler tritt nicht immer auf und wird bisher nur auf einem Client-Computer mit IE) angezeigt. Auf demselben Client-Computer mit Firefox funktioniert er einwandfrei.

Im Folgenden finden Sie die Fehlerprotokollierung aus Apache-Protokollen für eine fehlgeschlagene Anforderung

[Thu Mar 22 02:51:08 2012] [error] [client 10.36.64.137] (20014)Internal error: proxy: error reading status line from remote server localhost:8081, referer: http://samplehost.com:8080/sampleapp/opp/showSearchHome.htm
[Thu Mar 22 02:51:08 2012] [error] [client 10.36.64.137] proxy: Error reading from remote server returned by /sampleapp/opp/searchResult.htm, referer: http://samplehost.com:8080/sampleapp/opp/showSearchHome.htm

In Tomcat-Protokollen wird nichts gedruckt, wenn eine Anforderung fehlschlägt.

Nachfolgend finden Sie Informationen zur installierten Version von Apache

-bash-3.00$ ./httpd -v
Server version: Apache/2.2.21 (Unix)
Server built:   Sep 21 2011 20:00:58

Beim Versuch, die geladenen Module herauszufinden, erhalte ich folgende Fehlermeldung

-bash-3.00$ /usr/local/Apache2/bin/apachectl -t -D DUMP_MODULES
httpd: Syntax error on line 64 of /usr/local/Apache2/conf/httpd.conf: Cannot load /usr/local/Apache2/modules/mod_authnz_ldap.so into server: ld.so.1: httpd: fatal: libldap-2.4.so.2: open failed: No such file or directory
25
ckb

Dies wird in Ihrem Beitrag nicht erwähnt, aber ich vermute, dass Sie eine SSL-Verbindung vom Browser zu Apache herstellen, wo VirtualHosts konfiguriert sind, und Apache einen Revese-Proxy für Ihren Tomcat ausführt.

Es gibt einen schwerwiegenden Fehler in (einigen Versionen?) Von IE), der die 'falschen' Host-Informationen in einer SSL-Verbindung sendet (siehe BEARBEITEN unten) und die Apache VirtualHosts verwirrt Es wird die umgekehrte DNS-Auflösung der IP angezeigt, nicht die in der URL.

Die Problemumgehung besteht darin, eine IP-Adresse pro virtuellem SSL-Host/Servernamen anzugeben. Ist kurz, müssen Sie mit so etwas enden

1 Servername == 1 IP-Adresse == 1 Zertifikat == 1 Apache Virtual Host

[~ # ~] edit [~ # ~]

Obwohl die Schlussfolgerung richtig ist, wird die Identifizierung des Problems hier besser beschrieben http://en.wikipedia.org/wiki/Server_Name_Indication

9
Bruno Grieder