2015-10-22 3 views
4

Итак, я запускаю 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

+0

Вы решили это? – Bigood

+0

Нет, я сдался и переключился на nginx для моего прокси ... –

ответ

0

В HTTPd конфигурации, добавьте эти строки следуют:

AcceptFilter http none 
AcceptFilter https none 
EnableSendfile Off 
EnableMMAP off 

сразу после этой строки:

Listen 80 

Мой ответ получается менее 2 раз, но он все еще довольно медленный, чем обычно.

От https://www.apachelounge.com/viewtopic.php?p=26601

Смежные вопросы