diferença significativa na velocidade de carregamento da página: acessando diretamente o Tomcat (localhost) VS acessando o tomcat via Apache (conector mod_jk)

2

Eu tenho um tomcat v6 que contém dois aplicativos da web (JSF2.0 e JSP). O servidor físico é RedHat Enterprise com 16GB de memória.

Na forma atual, o tomcat é exposto à internet via apache 2.2 e estamos usando o conector mod_jk v1.28. assim, na essência, quando um usuário digita www1.example.com/myWebApp , em que webApp foi configurado em httpd.conf como worker1, o que, por sua vez, aponta para o tomcat acima mencionado acima v6 na porta 8009 para manipular a solicitação.

Tomcat server.xml tem os seguintes bits relevantes:

 <Connector port="8080"
             protocol="HTTP/1.1"
             maxThreads="150"
             connectionTimeout="20000"
             redirectPort="8443"
  />

 <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

em workers.properties worker1 foi configurado como:

worker.worker1.type = ajp13
worker.worker1.host =localhost
worker.worker1.port = 8009

e no httpd.conf:

JkMount     /myWebApp/* worker1

Ao testar as velocidades de carregamento da página, quando acessei o aplicativo da web acessando o tomcat acima diretamente usando seu endereço de host local (localhost: 8080 / myWebApp), o aplicativo da web é rápido e as médias são de aproximadamente 2-3 segundos.

Agora, se eu acessar o mesmo aplicativo da Web, na mesma rede, exceto no apache (www1.example.com/myWebApp), a página ficará visivelmente mais lenta e a velocidade de carregamento da página ficará entre 10 e 12 segundos.

isso é normal? Eu estou suspeitando que o trabalho de perna que acontece entre apache ---> mod_jk --> tomcat v6 para lidar com qualquer solicitação é somar as velocidades lentas? Alguém pode sugerir maneiras pelas quais eu posso melhorar a capacidade de resposta dos aplicativos da Web quando os pedidos são provenientes do apache?

ATUALIZAÇÃO:

Os atrasos de pesquisa de DNS estão fora de questão, dado em www1.example.com, que é mapeado para o nosso endereço IP local, pelo que definitivamente não há atrasos de pesquisa no DNS que contribuam para este atraso.

    
por John Younan 31.05.2012 / 14:02

1 resposta

0

Tente testar primeiro o nome do host localhost:

ou seja, com o nome do host localhost via Apache. Se é mais rápido, então você sabe que tem um problema de DNS.

Se ainda estiver lento, tente usar mod_proxy para reverter as solicitações de proxy para 8080 e ver se isso é lento,

então primeiro

a2enmod proxy

e depois no seu VirtualHost (coloque em um conf separado, não use http.conf), e remova o JKMount do http.conf

ProxyPassReverse /myWebApp/ http://localhost:8080/myWebApp/

Se não é, então você sabe que é o conector AJP. É assim, então é outra coisa no seu servidor Apache causando o problema

    
por 31.05.2012 / 16:24