Мы столкнулись со странной проблемой .... У нас загруженный сервер ... и время ответа составляет около 1 минуты на запрос (очень медленно) ... который выполняется перед Tomcat ... если мы обращаемся к сайту с xyz.com:8080 Это очень быстро (1 Req / Sec) ..... и мы используем Mod_Proxy, который перенаправляет запрос на tomcat ..... Мой вопрос вместо передачи запроса от apache to tomcat можем ли мы напрямую отправить запрос на tomcat ... или нам нужна какая-то конфигурация в Apache .......
Вот как выглядит файл 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
Я полагаю, ваш Apache работает быстро, но просто медленно для запросов Tomcat? Вопрос не совсем ясен, и если у вас сам Apache медленный, вам нужно это посмотреть. Только один процесс может прослушивать порт 80, поэтому, если вы не хотите указывать порт, вам придется пройти через Apache. Или полностью откажитесь от Apache и заставьте tomcat вместо этого прослушивать порт 80. Однако Apache должен быть достаточно быстрым, чтобы проксировать это.
Я могу предложить несколько вещей, если сам Apache работает быстро, но просто медленно для проксированных запросов Tomcat:
Это может быть медленный поиск DNS, но это редко на localhost. Я предполагаю, что localhost находится в файле hosts? Не могли бы вы изменить это значение на 127.0.0.1, чтобы не выполнять поиск в DNS?
Вам нужны все эти варианты?
Не понимаю, почему они вызывают проблемы, но не использовали их, поэтому первое предложение - вырвать их и посмотреть, улучшит ли это ситуацию. Затем, если они вам понадобятся, добавьте их по очереди, чтобы узнать, в чем проблема.
Поэтому я бы упростил и заменил на это:
ProxyPass / http://127.0.0.1:8080/
ProxyPassReverse / http://127.0.0:8080/
А потом попробуйте еще раз.
Я также предполагаю, что вы загружаете mod_proxy? Иногда можно упустить самые простые вещи ;-)