Windows'taki Apache 2.4 yavaş yanıt veriyor, bazı dinamik sayfalara bakarken kilitleniyor


30

(Bu sorunun cevabını biliyorum. Sadece cevabı topluluk ile paylaşmak için bunu gönderiyorum)

Yerel (Windows 7) Apache 2.4 örneğinde, bazı URL'leri sunarken, bu URL'lere erişmek için hangi tarayıcıyı kullandığıma bağlı olarak gecikmeler ya da kapatmalar yaşanıyor .

Firefox / Chrome ile Apache'nin belirli URL'lere cevap vermesi yavaş . Durgunluk belirli bir URL'de zamanın yaklaşık% 20'sini oluşturur. Bu gerçekleştiğinde, Firefox'un "Bekliyor ..." durumunu gösterdiği 5 saniyelik bir gecikme var.

Internet Explorer 9 ile Apache , yeniden başlatılana kadar herhangi bir isteği (herhangi bir tarayıcıyla) sunmayı durdurur ve durdurur.

  • Bu sadece dinamik (PHP) taleplerde ortaya çıkıyor, ama hepsi değil. Aslında, yalnızca belirli bir sitede gerçekleşir. Aynı makinedeki diğer PHP tabanlı siteler iyi çalışıyor.
  • Sorunlu alanın çok sayıda alt alandan (VirtualHosts) oluşması önemli olabilir veya olmayabilir.
  • Windows Güvenlik Duvarı ve Comodo Güvenlik Duvarı'nı devre dışı bırakmak yardımcı olmaz.
  • Sorun "daha yoğun" sayfalarla daha sık görünüyor (IFRAMES için ek istekler vs.)

Birçok değişikliği denedim httpd.conf(örneğin KeepAlive, EnableMMAP, HostnameLookups'ı devre dışı bırakmak gibi) ama hiçbir şey işe yaramadı.


1
Bazı oylarınız olduğunda, cevabı gerçek bir cevap haline getirme ününüz olacak, o zaman yapmanız gereken. (Başka bir şey olmazsa, yükseliş o zaman size daha fazla itibar kazandıracaktır.)
pjmorse

1
Bu gönderiyi burada Google üzerinden bulmak için: Aşağıdaki çözüm bu hata için de çalışır: " (OS 64) Belirtilen ağ adı artık kullanılabilir değil.: AH00341: winnt_accept: Asenkron AcceptEx başarısız oldu. ". Almanca: " (OS 64) Der angegebene Netzwerkname ist nicht mehr verfügbar.: AH00341: winnt_accept: Asenkron AcceptEx başarısız oldu. ".
Uwe Keim

Yanıtlar:


35

Tarafından cevap Thomasz


Çözüm, aşağıdakileri eklemek için httpd.conf:

AcceptFilter http none
AcceptFilter https none

Bu, Windows'ta, bazı performans iyileştirmeleri sunan, ancak muhtemelen Comodo Firewall ile çakışan AcceptEx () API'sini (WinSock'un bir parçası) devre dışı bırakma etkisine sahiptir.

Comodo Firewall'u "Disabled" (Devre Dışı) moduna getirmek, istekler muhtemelen Comodo'nun ağ kodunu kullanmaya devam ettiğinden yardımcı olmaz. Sanırım Comodo sorunu ortadan kaldırmak için tamamen kaldırılmak zorunda kalacaktı (denememe rağmen).

Apache 2.2 ile benzer bir sorununuz varsa bunun yerine Win32DisableAcceptEx yönergesini kullanmalısınız.

Referanslar

Http://httpd.apache.org/docs/2.4/mod/core.html adresinden alıntı :

Windows'taki varsayılan değerler:

AcceptFilter http data

AcceptFilter https data

Window mpm_winnt, AcceptEx () API'sini değiştirmek için AcceptFilter'ı yorumlar ve http protokolü tamponlamasını desteklemez. Windows AcceptEx () API'sini kullanan ve bağlantılar arasında ağ soketlerini geri dönüştüren iki değer vardır. veriler yukarıda açıklandığı gibi iletilinceye kadar bekler ve ilk veri arabelleği ve ağ bitiş noktası adreslerinin tümü tek AcceptEx () çağrısından alınır. connect, AcceptEx () API'sini kullanır, ayrıca ağ bitiş noktası adreslerini de alır, ancak hiçbiri gibi connect seçeneği ilk veri iletimini beklemez.

Windows'ta hiçbiri AcceptEx () yerine accept () kullanır ve bağlantılar arasındaki soketleri geri dönüştürmez. Bu, sürücü desteği olan ağ bağdaştırıcılarının yanı sıra vpn sürücüleri veya spam, virüs veya casus yazılım filtreleri gibi bazı sanal ağ sağlayıcıları için kullanışlıdır.

Ayrıca bakınız: http://forums.comodo.com/help-for-comodo-antivirus/conflict-with-apache-t260.0.html;msg31636#msg31636


1
IE10 ile Apache2.4'ün (comodo dahil değil) hizmet yeniden başlatılıncaya kadar askıda kalmasına neden olan sorunlar yaşıyorum - ve .conf'u bunları düzeltecek şekilde değiştirmek. Bunu gönderdiğiniz için teşekkür ederiz.
matt lohkamp

1
Bu benim için de işe yaradı. Ben de biraz daha referanslar toplanan blogumda bu konu hakkında bilgi çok şu anda dağınık olarak.
Stijn de Witt

3
Benim için çalıştı, 7 x 64 kazanın. noneApache'de neden varsayılan ayar olmadığını merak ediyorum ? Diğer 'yenilikçi' özellikler Apache'de varsayılan olarak devre dışı bırakılmıştır: P
rustyx

-1

Apache 2.4.16'yı Windows 7 Pro kutusunda çalıştırıyorum ve web sitem 2 hafta önce çalışmayı bıraktı. Bunu eklemek sorunu düzeltti.

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

Aşağı oy verdi, çünkü cevabınız @Eric Fossum'un yazdığı cevapla tamamen aynıydı.
hargobind
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.