2012-03-23 60 views
24

Tenemos una aplicación implementada en tomcat. Para acceder a la aplicación estamos usando apache que envía solicitudes a tomcat. Al azar, el navegador da la siguiente respuesta.El servidor proxy recibió una respuesta no válida de un servidor en sentido ascendente

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 

Este error no siempre llega y hasta ahora lo conseguimos en una máquina cliente con IE solamente. En la misma máquina cliente con Firefox, funciona bien.

A continuación se presenta la traza de error de los registros de Apache para una solicitud fallida

[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 

Nada se está impreso en los registros de Tomcat cuando una solicitud está fallando.

A continuación se presenta la versión información relacionada instalada de Apache

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

Al tratar de averiguar los módulos cargados consigo error siguiente

-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 
+0

es posible que desee probar intentos como esto en la configuración de Apache (probar diferentes combinaciones): // SetEnv fuerza-proxy-petición-1,0 1 // S etEnv proxy-nokeepalive 1 // SetEnv proxy-inicial-no-agrupado 1 // KeepAlive Apagado (u On) Muchas personas tienen problemas similares con desafortunadamente soluciones diferentes para ellos. O intenta cambiar de Apache a otro proxy inverso. – HelmuthB

+0

esto también puede ocurrir en Firefox, parece ser un problema https – virtualeyes

Respuesta

8

Esto no se menciona en el que publique pero sospecho que está iniciando una conexión SSL desde el navegador a Apache, donde se configuran VirtualHosts, y Apache hace un revese proxy a su Tomcat.

Hay un error grave en (algunas versiones?) De IE que envía la información de host "incorrecta" en una conexión SSL (ver EDITAR abajo) y confunde los Apache VirtualHosts. En resumen, el nombre del servidor presentado es el de la resolución DNS inversa de la IP, no la de la URL.

La solución consiste en tener una dirección IP por cada servidor/nombre de servidor virtual SSL. Es corto, debe terminar con algo así como

1 servidor de nombres == 1 Dirección IP == 1 == 1 certificado de Apache Virtual Host

EDITAR

Aunque la conclusión es correcta, el identificación del problema se describe mejor aquí http://en.wikipedia.org/wiki/Server_Name_Indication

+0

¿Entonces no podría alojar más de un servidor virtual SSL en la misma IP? Esto simplemente no puede ser cierto, ya que lo estoy haciendo ahora mismo. Tengo varios sitios configurados donde apache2 funciona únicamente como proxy. 2 de los sitios usan SSL y funciona muy bien. Todos los sitios están en diferentes IP internas, pero solo una IP pública. –

+1

@Patrik Alienus. ¿De verdad probaron sus sitios con navegadores listados como no compatibles con SNI en el artículo de Wikipedia? Si funciona, entonces tal vez deberías corregir el artículo de Wikipedia. Mi experiencia personal es que me enfrenté exactamente a este problema con los clientes que ejecutan IE en XP. –

+0

Hmm no, el detalle sobre SNI me evadió:/Los sitios que tengo funcionando funcionan bien, nunca tienen un cliente de Windows y/o móvil conectado a ellos. De hecho, supuse que sería lo mismo en todos los navegadores. Asi que...n/m, supongo :) –

Cuestiones relacionadas