Итак, я запускаю Tomcat (8.0) за Apache (2.4) в Windows Server 2012 и используя ProxyPass для прохождения через весь трафик. Все работает нормально, но всякий раз, когда я ничего не делаю в течение 60 секунд, а затем снова ударяю по серверу, я получаю задержку в 8-20 секунд, например, apache создает новый процесс для обработки запроса.apache просит очень медленно после использования ProxyPass
Моя конфигурация довольно много по умолчанию, который поставляется с Apache Haus, с добавлением прокси-материала, который я считаю, является виновником:
ProxyPass /static/ !
ProxyPass /http://localhost:8088/
ProxyPassReverse/http://localhost:8088/
Я добавил
/статический /!
освобождение, чтобы увидеть, будет ли такая же проблема возникать при подаче статических файлов, и, по-видимому, это так. Я также сузил его, комментируя все материалы ProxyPass, и проверка моего статического файла всегда загружается быстро. Затем я раскомментировал материал ProxyPass и только запросил мой статический файл, и он снова всегда возвращался быстро. Но как только я ударил URL-адрес, который забирает меня через прокси-сервер, подожди минутку, а потом снова ударишь его, что-то пойдет ужасно неправильно. Ниже представлен вывод сетевого монитора для двух запросов, первый из статических файлов запрашивается второй раз после 1-минутной задержки до прокси-сервера, а другой после прокси-сервера использовался дважды с задержкой между запросами прокси.
3501 4:17:48 PM 10/21/2015 104.2752287 httpd.exe HTTP HTTP:Request, GET /static/index.html
3502 4:17:48 PM 10/21/2015 104.2760830 httpd.exe HTTP HTTP:Response, HTTP/1.1, Status: Not modified, URL: /static/index.html
После (8 секунд, чтобы вернуться):
24232 4:26:13 PM 10/21/2015 608.7355960 httpd.exe HTTP HTTP:Request, GET /static/index.html
24775 4:26:20 PM 10/21/2015 616.0896861 httpd.exe HTTP HTTP:Response, HTTP/1.1, Status: Not modified, URL: /static/index.html
Я замечаю больше этой SynReTransmit линии после того, как она была изначально нарушена, не уверен, если это отношение:
24226 4:26:13 PM 10/21/2015 608.7286692 httpd.exe TCP TCP:[SynReTransmit #24107]Flags=......S., SrcPort=61726, DstPort=HTTP(80), PayloadLen=0, Seq=1157444168, Ack=0, Win=8192 (Negotiating scale factor 0x2) = 8192
Но в основном каждый вызов, будь то статический файл или через прокси, если прошло более 60 секунд со времени последнего вызова, навсегда понадобится получить ответ!
Любые идеи?
UPDATE: У меня была версия, немного устаревшая версия Apache, 2.4.12, но обновление до последней версии, 2.4.17, не исправить. Я пробовал все настройки keepalive, ничего не помогает. На другом форуме я был направлен в этом апача Dev потоке, который имеет планируемый патч для того, что походит на аналогичный вопрос, думаю, я буду ждать обновлений апача:
http://marc.info/?l=apache-httpd-dev&m=144543644225945&w=2
Вы решили это? – Bigood
Нет, я сдался и переключился на nginx для моего прокси ... –