Actualmente estoy usando Apache 2.2.3 y CentOS 5.4 para mis aplicaciones php (php se ejecuta en 5.3.7) y la aplicación se ejecuta en HTTPS y con el certificado Root CA.
El problema es que hemos estado experimentando algunos problemas extraños con IE9 (solo IE9). Cuando el navegador IE9 envía una solicitud HTTPS a nuestro servidor, a veces no hay respuesta HTTPS. Lo que he notado es que IE9 actualizará la página. Para ser más específicos, la página mencionada es una página de inicio de sesión. Entonces, cuando ingreso el nombre de usuario y la contraseña y envío el formulario, pero no hay respuesta e IE9 parece volver a cargar la misma página de inicio de sesión. (con nombre de usuario y contraseña en blanco)
Al rastrear desde el nivel de la aplicación, noto que recibí el nombre de usuario y la contraseña y la aplicación finalizó sin errores.
El principal dolor de cabeza es que no se puede reproducir todo el tiempo. A veces podemos iniciar sesión sin ningún problema, pero a veces tendrá el problema mencionado anteriormente.
Ahora nuestra empresa tiene equipo de red, desarrolladores y otros equipos. Nuestro apache se ejecuta bajo un equilibrador de carga. Los chicos de la red afirman que nunca cambian ninguna configuración, los únicos cambios son nuestra aplicación. Pero desde el punto de vista de los desarrolladores, los cambios no tienen nada que ver con el proceso de inicio de sesión.
Desde mi punto de vista, parece que una vez que el usuario hace clic en enviar, y la aplicación (apache) hizo lo que hace al enviar un HTML (Respuesta HTTPS), pero el HTML de alguna manera desapareció milagrosamente en la red. Sospecho que hay algo que ver con la conexión keep-alive? Probablemente el agente del navegador IE9 lo maneja de manera diferente, y de alguna manera considera que la conexión falla y vuelve a cargar la página para volver a intentarlo.
Pero de todos modos, he notado la siguiente configuración en Apache para la conexión SSL:
SetEnvIf User-Agent ". MSIE " . \ Nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0
¿No está seguro de cómo podemos configurar de manera que excluya IE9 y superior? Cuando hago una búsqueda, la configuración anterior es para solucionar un problema de larga data cuando IE se conecta con Apache. Pero dado que IE9 es completamente nuevo, ¿probablemente el problema ya esté solucionado y necesitamos actualizar la configuración?
Esperemos que alguien pueda arrojar algunas luces sobre esto ...
fuente
Respuestas:
Lo más probable es que la configuración del servidor / red tenga un problema en algún lugar y no sea causada por ninguna peculiaridad de IE9.
En primer lugar, deshazte de la antigua configuración previa de IE6:
SetEnvIf User-Agent ".MSIE." \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0
e intenta ejecutar sin eso (en cualquier forma). A menos que necesite admitir IE5, lo cual dudo que haga, en cuyo caso es correcto cambiar la expresión regular aMSIE [2-5]
El equilibrador de carga y no tener keepalive es probablemente el problema. Sospecharía mucho del equilibrador de carga y comprobaría exactamente qué está sucediendo allí primero.
Un equilibrador de carga generalmente 'equilibrará la carga' entre dos o más direcciones IP (internas o externas, no importa en este momento).
Luego, al no tener ninguna actividad activa en las conexiones entre las solicitudes, la computadora / navegador del cliente tendrá que realizar una negociación SSL para cada solicitud. Combine esto con la lentitud y la configuración de tiempo de espera bajo, y podemos obtener problemas de falta de coincidencia de certificados SSL e IE probablemente se saldrá debido a la estricta configuración de seguridad. No he investigado exactamente si IE9 solo tiene este rasgo. Sospecho que otros navegadores también hacen esto y lo tratan de manera diferente.
Si está utilizando SSL, debe tener KeepAlive activado, ya que hará que el sitio sea mucho más rápido y no tenga que pasar por la negociación SSL una y otra vez, lo que fallará porque el equilibrador de carga no mantiene la sesión en el mismo servidor durante la vida del visitante .
Si su aplicación es interna (en una intranet), su equilibrador de carga salta aleatoriamente sus direcciones IP y SSL necesita que sea igual por conexión.
Si no está en una intranet, lo mismo podría ser cierto, no sé cómo está configurada su red, pero primero debe verificar eso. Deshabilite el equilibrador de carga y vea si el problema existe. y definitivamente ponte a seguir vivo.
http://httpd.apache.org/docs/2.2/mod/core.html#keepalive
También verificaría si tienes la configuración dns inversa en absoluto. Si está apuntando al equilibrador de carga o al servidor detrás del equilibrador de carga o no.
Pruebe su conexión y analice sus encabezados, si es externo use algo como redbot.org o webpagetest.org para verificar qué encabezados se envían. También puedes usar algo como Fiddler
fuente