Apache 2.4 на Windows реагирует медленно, зависает при обслуживании некоторых динамических страниц

(Я знаю ответ на этот вопрос. Разместив это просто поделиться ответом с сообществом)

мой локальный (Windows 7) экземпляр Apache 2.4 experiences задержки или зависания при обслуживании некоторых URL-адресов, в зависимости от того, какой браузер я использую для доступа к этим URL-адресам.

С Firefox / Chrome, Apache медленно реагируют по определенным url. Медлительность происходит около 20% времени на любом данном URL. Когда он делает происходит, есть 5-секундная задержка, в течение которой Firefox отображает "ожидание"..." статус.

С Internet Explorer 9,Apache просто висит и перестает обслуживать любые запросы (с любым браузером), пока он не будет перезапущен.

  • это, кажется, происходит только с динамическими (PHP) запросами, но не со всеми. На самом деле, это происходит только на одном конкретном сайте. Другие PHP - сайты на той же машине работают нормально.
  • он может или не может быть значительным, что проблемный сайт состоит из большого количества поддоменов (VirtualHosts).
  • Отключение брандмауэра Windows и брандмауэра Comodo не помогает.
  • проблема, кажется, более частыми с "занятым" страниц (дополнительные запросы для iframe и т. д.)

Я перепробовал много изменений в httpd.conf (например, отключение поддержки активности, EnableMMAP, HostnameLookups), но ничего не работает.

18
задан Eric Fossum
09.01.2023 8:37 Количество просмотров материала 2729
Распечатать страницу

2 ответа

ответил Thomasz


решение-добавить следующий код httpd.conf:

AcceptFilter http none
AcceptFilter https none

на Windows, это имеет эффект отключения AcceptEx () API (часть WinSock), который предлагает некоторые улучшения производительности, но, вероятно, конфликтует с Comodo Firewall.

установка Comodo Firewall в "отключенном" режиме не помогает, потому что запросы, вероятно, все еще проходят через сетевой код Comodo. Я думаю, что Comodo будет должны быть удалены полностью, чтобы устранить проблему (хотя я не пробовал).

если у вас есть аналогичная проблема с Apache 2.2, вы должны использовать директиву Win32DisableAcceptEx.

ссылки

цитирую http://httpd.apache.org/docs/2.4/mod/core.html:

значения по умолчанию в Windows:

AcceptFilter http data

AcceptFilter https data

окна mpm_winnt интерпретирует AcceptFilter для переключения AcceptEx () API, и не поддерживает буферизацию протокола http. Там два значения, которые используют Windows AcceptEx() API и будут перезапуск сетевых сокетов между соединениями. данные ждут, пока данные переданный как документировано выше, и буфер начальных данных и все адреса конечных точек сети извлекаются из одного AcceptEx() вызова. connect будет использовать AcceptEx() API, также получение конечной точки сети адреса, но как никто подключение опция не ждет первоначальной передачи данных.

В Windows, никто не использует accept (), а не AcceptEx () и не будет перезапуск сокетов между соединениями. Это полезно для сети адаптеры со сломанной поддержкой драйверов, а также некоторые виртуальные сети провайдеры, такие как VPN драйверов, или спам, вирус или шпионское ПО, фильтры.

посмотреть также: http://forums.comodo.com/help-for-comodo-antivirus/conflict-with-apache-t260.0.html;msg31636#msg31636

32
отвечен Eric Fossum 2023-01-10 16:25

Я запускаю Apache 2.4.16 на Windows 7 Pro box, и мой сайт просто перестал работать около 2 недель назад. Добавление этого исправила проблему.

ServerRoot "C:/Program Files (x86)/Apache Software Foundation/Apache2.4"

#
# Listen: Allows you to bind Apache to specific IP addresses and/or
# ports, instead of the default. See also the <VirtualHost>
# directive.
#
# Change this to Listen on specific IP addresses as shown below to 
# prevent Apache from glomming onto all bound IP addresses.
#
#Listen XX.XX.XX.XX:80
Listen 80
AcceptFilter http none
AcceptFilter https none
-1
отвечен pluckyduck 2023-01-10 18:42

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх