Redirecionamento da porta 80 para a porta 8080: Apache com Proxypass muito lento, enquanto o acesso direto a xyz.com:8080 é muito rápido

Redirecionamento da porta 80 para a porta 8080: Apache com Proxypass muito lento, enquanto o acesso direto a xyz.com:8080 é muito rápido

Estamos enfrentando um problema estranho....Temos um servidor ocupado...e o tempo de resposta é de cerca de 1 minuto por solicitação (muito lento).....que está sendo executado na frente do Tomcat..... se estivermos acessando o site com xyz.com:8080 É super rápido (1 Req/Sec) ..... e estamos usando Mod_Proxy que redireciona a solicitação para o Tomcat ..... Minha pergunta em vez de passar a solicitação do Apache para o Tomcat, podemos enviar solicitações diretamente para o Tomcat... ou precisamos de alguma configuração no Apache.......

Aqui está o arquivo Httpd.conf parecido com ..

ProxyPreserveHost On 
ProxyPass / http://localhost:8080/ retry=1 acquire=300 timeout=60 Keepalive=On 
ProxyPassReverse / http://localhost:8080/ ErrorLog /Path/To/Logs/Apache.log LogLevel warn

Responder1

Presumo que seu Apache esteja rodando rápido, mas lento para as solicitações do Tomcat. A pergunta não está totalmente clara e se o seu Apache for lento, você precisa dar uma olhada nisso. Apenas um processo pode escutar na porta 80, portanto, se você não quiser especificar a porta, terá que passar pelo Apache. Ou descarte completamente o Apache e faça com que o Tomcat escute na porta 80. No entanto, o Apache deve ser rápido o suficiente para fazer proxy disso.

Poucas coisas posso sugerir se o próprio Apache for rápido, mas apenas lento para as solicitações do Tomcat com proxy:

Pode ser uma pesquisa de DNS lenta, mas isso é raro no host local. Presumo que localhost esteja no arquivo hosts? Você poderia alterar isso para 127.0.0.1 para não precisar de uma pesquisa de DNS?

Você precisa de todas essas opções?

  • ProxyPreserveHost – o Tomcat precisa saber sobre o nome do host? Se não há necessidade de preservá-lo?
  • retry/aquire/timeout/keepalive - eles são mais indicados para quando o proxy não está em uma conexão confiável ou atrás de um firewall. Eles não deveriam ser necessários quando o Apache e o Tomcat estiverem no mesmo servidor.
  • Arquivos de log personalizados para solicitações de proxy podem ser úteis, mas eu mesmo não os usei.

Não vejo por que eles causariam problemas, mas não os usei, então a primeira sugestão seria arrancá-los e ver se isso melhora as coisas. Então, se precisar deles, adicione-os novamente um por um para ver onde estava o problema.

Então eu simplificaria e substituiria por isto:

ProxyPass / http://127.0.0.1:8080/ 
ProxyPassReverse / http://127.0.0:8080/

E então tente novamente.

Também presumo que você esteja carregando mod_proxy? Às vezes, as coisas mais simples podem passar despercebidas ;-)

informação relacionada