Redirección del puerto 80 al puerto 8080: Apache con Proxypass es demasiado lento, mientras que acceder directamente a xyz.com:8080 es muy rápido

Redirección del puerto 80 al puerto 8080: Apache con Proxypass es demasiado lento, mientras que acceder directamente a xyz.com:8080 es muy rápido

Nos enfrentamos a un problema extraño... Tenemos un servidor ocupado... y el tiempo de respuesta es de aproximadamente 1 minuto por solicitud (muy lento)... que se ejecuta frente a Tomcat... si accedemos al sitio con xyz.com:8080 Es súper rápido (1 Req/Sec).... y estamos usando Mod_Proxy que redirige la solicitud a Tomcat... Mi pregunta en lugar de pasar la solicitud desde Apache a Tomcat podemos enviar una solicitud directamente a Tomcat... o necesitamos alguna configuración en Apache...

Aquí está el archivo Httpd.conf.

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

Respuesta1

Supongo que su Apache se está ejecutando rápido, pero simplemente lento para las solicitudes de Tomcat. La pregunta no está del todo clara y si su Apache es lento, entonces debe analizarlo. Solo un proceso puede escuchar en el puerto 80, por lo que si no desea especificar el puerto, tendrá que pasar por Apache. O elimine Apache por completo y haga que Tomcat escuche en el puerto 80. Sin embargo, Apache debería ser lo suficientemente rápido para hacer proxy de esto.

Pocas cosas puedo sugerir si el propio Apache es rápido pero simplemente lento para las solicitudes de Tomcat proxy:

Podría ser una búsqueda de DNS lenta, pero eso es poco común en localhost. Supongo que localhost está en el archivo de hosts. ¿Podrías cambiar esto a 127.0.0.1 para no necesitar una búsqueda de DNS?

¿Necesitas todas esas opciones?

  • ProxyPreserveHost: ¿Tomcat necesita saber el nombre del host? Si no es necesario conservarlo?
  • reintentar/aquire/timeout/keepalive: están más destinados a cuando el proxy no está en una conexión confiable o detrás de un firewall. No deberían ser necesarios cuando Apache y Tomcat se encuentran en el mismo servidor.
  • Los archivos de registro personalizados para solicitudes de proxy pueden ser útiles, pero yo no los uso.

No veo por qué causarían problemas, pero no los he usado, así que la primera sugerencia sería arrancarlos y ver si eso mejora las cosas. Luego, si los necesita, vuelva a agregarlos uno por uno para ver dónde estaba el problema.

Entonces simplificaría y reemplazaría con esto:

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

Y luego inténtalo de nuevo.

¿También supongo que estás cargando mod_proxy? A veces las cosas más simples se pueden perder ;-)

información relacionada