Le serveur proxy a reçu une réponse non valide d'un serveur en amont [fermé]

Nous avons une application déployée sur tomcat. Pour accéder à l'application, nous utilisons apache qui envoie des demandes de tomcat. Au hasard navigateur donne la réponse suivante.

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

Cette erreur ne vient pas toujours et jusqu'à présent nous l'obtenons dans une machine cliente avec IE seulement. Sur la même machine cliente avec Firefox, cela fonctionne bien.

Voici la trace d'erreur des journaux Apache pour une requête ayant échoué

[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

Rien n'est imprimé sur les journaux tomcat lorsqu'une requête est défaillant.

Voici les informations relatives à la version installée d'apache

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

Lorsque vous essayez de trouver des modules chargés, je reçois l'erreur suivante

-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
24
demandé sur VC1 2012-03-23 08:52:43

1 réponses

Cela n'est pas mentionné dans votre publication, mais je soupçonne que vous initiez une connexion SSL du navigateur à Apache, où VirtualHosts sont configurés, et Apache fait un proxy revese à votre Tomcat.

Il y a un bug sérieux dans (certaines versions ?) D'IE qui envoie les informations d'hôte "fausses" dans une connexion SSL (voir édition ci-dessous) et confond les hôtes D'Apache VirtualHosts. En bref, le nom du serveur présenté est celui de la résolution DNS inverse de L'IP, pas celui de la URL.

La solution consiste à avoir une adresse IP par hôte virtuel SSL/nom du serveur. Est court, vous devez vous retrouver avec quelque chose comme

1 Nom du serveur = = 1 adresse IP = = 1 Certificat = = 1 hôte virtuel Apache

Modifier

Bien que la conclusion soit correcte, l'identification du problème est mieux décrite ici http://en.wikipedia.org/wiki/Server_Name_Indication

8
répondu Bruno Grieder 2012-03-23 09:25:16