Atualmente, estou usando o Apache 2.2.3 e o CentOS 5.4 para meus aplicativos php (php executando no 5.3.7) e o aplicativo está executando no HTTPS e com certificado CA raiz.
O problema é que estamos enfrentando alguns problemas estranhos com o IE9 (somente IE9). Quando o navegador IE9 envia uma solicitação HTTPS ao nosso servidor, às vezes não há resposta HTTPS. O que eu notei é que o IE9 atualiza a página. Para ser mais específico, a página mencionada é uma página de login. Então, quando eu digito o nome de usuário e a senha e envio o formulário, mas não há resposta e o IE9 parece recarregar a mesma página de login novamente. (com nome de usuário e senha em branco)
Ao rastrear no nível do aplicativo, percebo que recebi o nome de usuário e a senha e o aplicativo foi finalizado sem erros.
A principal dor de cabeça é que não pode ser reproduzida todas as vezes. Às vezes, podemos fazer o login sem problemas, mas às vezes o problema mencionado acima.
Agora nossa empresa tem equipe de rede, desenvolvedores e outras equipes. Nosso apache está sendo executado em um balanceador de carga. O pessoal da rede afirma que nunca altera nenhuma configuração, a única alteração é a nossa aplicação. Mas, do ponto de vista dos desenvolvedores, as alterações não têm nada a ver com o processo de login.
Do meu ponto de vista, parece que uma vez que o usuário clica em enviar, e o aplicativo (apache) fez o que faz enviando um HTML (resposta HTTPS), mas o HTML desapareceu milagrosamente na rede. Eu suspeito que há algo a ver com a conexão keep-alive? Provavelmente, o agente do navegador IE9 lida com isso de maneira diferente e, de alguma forma, considera que a conexão falha e recarrega a página para uma nova tentativa?
De qualquer forma, observei as seguintes configurações no Apache para conexão SSL:
SetEnvIf User-Agent ". MSIE. " \ Nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0
Não sabe ao certo como podemos configurar de uma maneira que exclua o IE9 e superior? Quando faço uma pesquisa, as configurações acima são para corrigir algum problema de longa data quando o IE está se conectando ao Apache. Mas como o IE9 é totalmente novo, provavelmente o problema já foi resolvido e precisamos atualizar as configurações?
Espero que alguém possa lançar alguma luz sobre isso ..
fonte
Respostas:
Provavelmente, a configuração do servidor / rede tem um problema em algum lugar e não é causada por nenhuma peculiaridade do IE9.
Primeiro, livre-se da antiga configuração anterior ao IE6:
SetEnvIf User-Agent ".MSIE." \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0
e tente executar sem isso (de qualquer forma). A menos que você precise oferecer suporte ao IE5, o que duvido que seja, nesse caso, você está correto em alterar a regex paraMSIE [2-5]
O balanceador de carga e a ausência de manutenção da atividade provavelmente é o problema. Eu desconfiaria muito do balanceador de carga e verificaria exatamente o que está acontecendo primeiro.
Um balanceador de carga geralmente 'equilibra a carga' entre dois ou mais endereços IP (interno ou externo, não importa neste momento).
Por não ter manutenção permanente das conexões entre solicitações, o computador / navegador cliente precisará executar a negociação SSL para cada solicitação. Combine isso com as configurações de lentidão e baixo tempo limite e podemos obter problemas de incompatibilidade de certificados SSL e o IE provavelmente será liberado por causa de uma configuração estrita de segurança. Não investiguei exatamente se o IE9 tem apenas essa característica. Eu suspeitaria que outros navegadores também fazem isso e lidam com isso de maneira diferente.
Se você estiver usando SSL, deverá manter o KeepAlive, pois isso tornará o site muito mais rápido e não precisará passar pela Negociação SSL repetidamente, falhando, pois o balanceador de carga não manterá a sessão no mesmo servidor durante a vida útil do visitante. .
Se seu aplicativo for interno (em uma intranet), seu balanceador de carga estará saltando aleatoriamente endereços IP para você e o SSL precisará ser o mesmo por conexão.
Se não estiver em uma intranet, o mesmo poderia ser verdade, não sei como sua rede está configurada, mas você deve verificar isso primeiro. Desative o balanceador de carga e veja se o problema existe. e definitivamente colocar manter vivo.
http://httpd.apache.org/docs/2.2/mod/core.html#keepalive
Gostaria também de verificar se você tem a configuração reversa do DNS. Se estiver apontando para o balanceador de carga ou o servidor atrás do balanceador de carga ou não.
Teste sua conexão e analise seus cabeçalhos, se externo usar algo como redbot.org ou webpagetest.org para verificar quais cabeçalhos são enviados. Além disso, você pode usar algo como violinista
fonte