Heim >Backend-Entwicklung >PHP-Tutorial >Vergleichende Analyse von drei großen WEB-Servern (Apache, Lighttpd, Nginx)

Vergleichende Analyse von drei großen WEB-Servern (Apache, Lighttpd, Nginx)

WBOY
WBOYOriginal
2016-07-30 13:31:031721Durchsuche

1. lighttpd

Lighttpd ist ein Programm mit sehr geringem Speicheraufwand, geringer CPU-Auslastung, guter Leistung und umfangreichen Modulen. lighttpd ist einer der besseren unter vielen OpenSource-Lightweight-Webservern. Unterstützt FastCGI, CGI, Auth, Ausgabekomprimierung, URL-Umschreiben, Alias ​​​​und andere wichtige Funktionen.

Lighttpd verwendet fastcgi zum Ausführen von PHP, das nur sehr wenige PHP-Prozesse verwendet, um auf eine große Menge an Parallelität zu reagieren.

Die Vorteile von Fastcgi sind:

· Aus Stabilitätsgründen führt fastcgi CGI in einem unabhängigen Prozesspool aus. Wenn ein einzelner Prozess ausfällt, kann das System ihn problemlos verwerfen und dann neu starten Weisen Sie neue Prozesse zu, um die Logik auszuführen.

· Aus Sicherheitsgründen ist fastcgi völlig unabhängig vom Host-Server, egal wie schnell fastcgi ausfällt >· Aus Sicht der Leistung trennt fastcgi die Verarbeitung der dynamischen Logik vom Server. Die E/A-Verarbeitung mit großer Last bleibt dem Host-Server überlassen, sodass der Host-Server E/A vollständig ausführen kann. Die Logikverarbeitung macht möglicherweise nur einen kleinen Teil aus, z. B. erfordert die Verarbeitung einer großen Anzahl von Bildern überhaupt keine Beteiligung von Logikprogrammen (Hinweis 1).

· In Bezug auf die Skalierbarkeit ist fastcgi neutral technischer Standard und kann in jeder Sprache (PHP, Java, Python...) geschriebene Verarbeitungsprogramme vollständig unterstützen

2.Apache

Apache ist laut Netcraft der weltweit führende Webserver (

www.netsraft.co.uk

) Laut einer Umfrage verwenden mehr als 50 % der Webserver weltweit Apache.Im April 1995 wurde der früheste Apache (Version 0.6.2 ) wurde von der Apache-Gruppe veröffentlicht. Eine gemeinnützige Organisation, die über das Internet operiert und festlegt, was in der Standardverteilung des Apache-Webservers enthalten sein soll, sodass jeder Fehler beheben, neue Funktionen bereitstellen und ihn portieren kann an neue Plattformen und andere Arbeiten. Wenn neuer Code an die Apache-Gruppe übermittelt wird, überprüft die Gruppe seinen spezifischen Inhalt, testet ihn und wenn er zufrieden ist, wird der Code in die Haupt-Apache-Distribution integriert.

Apache-Funktionen:

1) Kann auf fast allen Computerplattformen ausgeführt werden

2) Unterstützt das neueste http/1.1-Protokoll

3) Einfache und leistungsstarke dateibasierte Konfiguration (. httpd.conf).

4) Unterstützt Common Gateway Interface (CGI)

5) Unterstützt virtuellen Host.

6) Unterstützt HTTP-Authentifizierung.

7) Integriertes Perl.

8) Integrierter Proxyserver

9) Sie können den Status des Servers über einen Webbrowser überwachen und das Protokoll anpassen.

10 ) Unterstützt serverseitige Einschlussbefehle (SSI).

11) Unterstützt Secure Socket Layer (SSL).

12) Hat die Möglichkeit, Benutzersitzungsprozesse zu verfolgen.

13) Unterstützen Sie fastcgi

14) Unterstützen Sie Java-Servlets

3.nginx

Nginx ist ein sehr leichter HTTP-Server, der von Russen geschrieben wurde. Nginx wird als „Engine“ ausgesprochen leistungsstarker HTTP- und Reverse-Proxy-Server sowie ein IMAP/POP3/SMTP-Proxy-Server. Nginx wurde vom Russen Igor Sysoev für die am zweithäufigsten besuchte Rambler.ru-Site in Russland entwickelt.

Nginx ist ereignisgesteuert geschrieben, weist daher eine sehr gute Leistung auf und ist außerdem ein sehr effizienter Reverse-Proxy , Lastausgleich. Die Leistung entspricht der von Lighttpd, es gibt jedoch nicht das Speicherleckproblem von Lighttpd. Auch der mod_proxy von Lighttpd weist einige Probleme auf und wurde seit langem nicht mehr aktualisiert. Allerdings unterstützt Nginx den CGI-Betrieb nicht, da dadurch einige dadurch verursachte Programmschwachstellen verringert werden können. Daher muss FastCGI zum Ausführen von PHP-Programmen verwendet werden.

Als HTTP-Server verfügt nginx über die folgenden Grundfunktionen:

Verarbeitung statischer Dateien, Indexdateien und automatische Indizierung beim Öffnen von Dateideskriptoren;

Cachelose Reverse-Proxy-Beschleunigung, einfacher Lastausgleich und Fehlertoleranz.

FastCGI, einfacher Lastausgleich und Fehlertoleranz.

Modularer Aufbau. Einschließlich Gzipping, Bytebereiche, Chunked-Antworten sowie SSI-Filter und andere Filter. Wenn mehrere auf einer einzelnen Seite vorhandene SSIs von FastCGI oder einem anderen Proxyserver verarbeitet werden, kann diese Verarbeitung parallel ablaufen, ohne aufeinander zu warten.

Nginx wurde speziell für die Leistungsoptimierung entwickelt. Leistung ist sein wichtigster Gesichtspunkt und bei seiner Implementierung wird großer Wert auf Effizienz gelegt. Es unterstützt das Kernel-Poll-Modell und hält dem Test hoher Last stand. Berichten zufolge kann es bis zu 50.000 gleichzeitige Verbindungen unterstützen.

Nginx hat eine hohe Stabilität. Wenn andere HTTP-Server auf Zugriffsspitzen stoßen oder jemand in böswilliger Absicht eine langsame Verbindung initiiert, kann dies auch dazu führen, dass der physische Speicher des Servers erschöpft ist, häufig ausgetauscht wird und die Antwort verloren geht, und der Server kann nur neu gestartet werden. Wenn Apache beispielsweise derzeit mehr als 200 Prozesse hat, wird die Web-Reaktionsgeschwindigkeit offensichtlich sehr langsam sein. Nginx verwendet eine Technologie zur schrittweisen Ressourcenzuweisung, wodurch die CPU- und Speicherauslastung sehr gering ist. Nginx gibt offiziell an, dass es 10.000 inaktive Verbindungen unterhält und nur 2,5 MB Speicher belegt, sodass Angriffe wie DOS für Nginx grundsätzlich nutzlos sind. In Bezug auf die Stabilität ist Nginx besser als Lighthttpd.

Nginx unterstützt Hot Deployment. Es ist besonders einfach zu starten und kann fast rund um die Uhr ohne Unterbrechung laufen, selbst wenn es mehrere Monate läuft, muss es nicht neu gestartet werden. Sie können die Softwareversion auch ohne Serviceunterbrechung aktualisieren.


GutSeltenDurchschnittlichAllgemein table>

Hinweis: Bei relativ relativ großen Websites sind die eingesparten Serverkosten zweifellos objektiv. Einige kleine Websites verfügen oft nicht über viele Server, wenn sie herkömmliche Webserver wie Apache verwenden, scheinen sie überlebensfähig zu sein. Aber es hat offensichtliche Nachteile: Apache wird leicht überlastet, wenn es um Traffic-Bursts (wie Crawler oder Digg-Effekte) geht. In diesem Fall ist Nginx am besten geeignet.

Empfohlene Lösung:

Apache Backend-Server (verarbeitet hauptsächlich php und einige Funktionsanforderungen wie: Chinesisch URL)

Nginx Front-End-Server (verwenden Sie ihn, um weniger Systemressourcen zu verwalten). eine große Anzahl von Anfragen für statische Seiten)

Lighttpd Image Server

Insgesamt mit nginx Die Verbesserung der Funktionen wird es in Zukunft zum Mainstream-Webserver machen.


Die Reaktionszeit von drei Arten von Software wird separat für Anfragen und Parallelität von dynamischen Seiten und statischen Seiten getestet

l >Statische Seite Sohu-Homepage

LIGHTTPD

server

Apache

Nginx     

Lighttpd

Proxy代理

非常好

非常好

一般

Rewriter

非常好

一般

Fcgi

不好

非常好

热部署

不支持

支持

不支持

系统压力比较

很大

很小

比较小

稳定性

非常好

不好

安全性

一般

一般

技术支持

非常好

很少

一般

静态文件处理

一般

非常好

Vhosts虚拟主机

支持

不支持

支持

反向代理

一般

非常好

一般

Session sticky

支持

不支持

不支持

server
Apache span> Nginx Lighttpd
Proxy Sehr gut Sehr gut Gut Durchschnittlich
Rewriter Gut Sehr gut Durchschnittlich
Fcgi Nicht gutSehr gut
Hot-Bereitstellung Nicht unterstützt Unterstützt Nicht unterstützt
Systemdruckvergleich sehr groß sehr klein Relativ klein
Stabilität Gut Sehr gut Nicht gut
Sicherheit Gut Allgemein Allgemein
Technischer Support Sehr gutDurchschnittlich
Statische Dateiverarbeitung Durchschnitt Ausgezeichnet Gut
Vhosts virtueller Host Unterstützt Nicht unterstützt Unterstützung
Reverse-Proxy Ausgezeichnet
Sitzung bleibt hängen Unterstützung Nicht unterstützt Nicht unterstützt
Mem
n/-c (ab-Parameter)

n/-c(ab参数)

cpu%

Mem

RequestsperSecond

Time taken for tests

100000/100

64

60

462.75

21.6

100000/200

67

60

312.07

32.4

100000/500

83

60

137.24

72.8

100000/1000

出现错误丢包

94

60

126.6

78.9

cpu%

n/-c(ab参数)

cpu%

Mem

RequestsperSecond

Time taken for tests

100000/100

34.6

140

943.66

10.597

100000/200

35.6

110

924.32

10.818

100000/500

34.3

110

912.68

10.956

100000/1000

37

160

832.59

12.106

RequestsperSecond

Für Tests benötigte Zeit

100000/100

n/-c(ab参数)

cpu%

Mem

RequestsperSecond

Time taken for tests

100000/100

40.6

170

690.72

14.47

100000/200

41.1

180

685.39

14.59

100000/500

42.3

190

633.64

15.78

100000/1000

43.1

200

547.53

18.26

64 60 462,75 21,6
100000/200 67 60 312,07 32,4
100000/500 83 60 137,24 72,8
100000/1000Fehler Paketverlust aufgetreten 94 60 126,6 78,9
NGINX
n/-c (ab-Parameter) cpu% Mem RequestsperSecond Für Tests benötigte Zeit
100000/100 34,6 140 943,66 10.597
100000/200 35,6 110 924,32 10,818
100000/500 34,3 110 912,68 10,956
100000/1000 37 160 832,59 12.106
APACHE
n/-c (ab-Parameter) cpu% Mem RequestsperSecond Für Tests benötigte Zeit
100000/100 40,6 170 690,72 14,47
100000/200 41,1 180 685,39 14,59
100000/500 42,3 190 633,64 15,78
100000/1000 td> 43,1 200 547,53 18,26

l        动态页面 内部社区首页

LIGHTTPD

n/-c(ab参数)

cpu%

Mem

RequestsperSecond

Time taken for tests

1000/100

50

200

33.54

29.816

1000/200

52

210

30.43

32.858

1000/500

54

230

25.79

38.76

1000/1000

62

250

24.83

40.28

n/-c(ab参数)

cpu%

Mem

n/-c(ab参数)

cpu%

Mem

RequestsperSecond

Time taken for tests

1000/100

53.8

250

83.12

12.305

1000/200

55.8

250

74.05

13.504

1000/500

56

260

58.99

16.951

1000/1000

58

260

43.41

23.347

RequestsperSecond

Für Tests benötigte Zeit

n/-c(ab参数)

cpu%

Mem

RequestsperSecond

Time taken for tests

100000/100

60

200

27.37

36.541

100000/200

61

220

23.82

41.981

100000/500

73

150

20.59

48.562

100000/1000

53

200

27.18

36.796

1000/100

50

200 td>33,54

29,816

1000/200

n/-c(ab参数)

cpu%

Mem

RequestsperSecond

Time taken for tests

100000/100

45

20

168.06

59.504

100000/200

47

22

140.64

71.103

100000/500

49

24

52.80

189.386

100000/1000

在请求到4840时测试测试程序死掉

52 210 30,43 32,858
1000/500 54 230 25,79 38,76
1000/1000 62 250 24,83 40,28
NGINX12,305
n/-c(ab参数) cpu% Mem RequestsperSecond Zeit für Tests genommen
1000/100 53,8 250 83,12
1000/200 55,8 250 74,05 13,504
1000/500 56 260 58,99 16,951 td>
1000/1000 58 260 43,41 23.347
APACHE
n/-c(ab参数) cpu% Mem RequestsperSecond Für Tests benötigte Zeit
100000/100 60 200 27,37 36,541
100000/200 61 220 23,82 73 150 20,59 48,562
100000/ 1000 53 200 27,18 36,796
l        PHPINFO函数页LIGHTTPD22

NGINX

n/-c(ab参数) CPU% Speicher RequestsperSecond Für Tests benötigte Zeit
100000/100 45 20 168,06 59,504
100000/200 47140,64 71,103
100000/500 49 24 52,80 189,386
100000/1000 在请求到4840时测试测试程序死掉

n/-c(ab参数)

cpu%

Mem

RequestsperSecond

Time taken for tests

100000/100

70

120

143.46

69.706

100000/200

72

130

140.57

71.140

100000/500

73

150

135.87

73.601

100000/1000

77

160

132.18

75.657

n/-c(ab参数)

cpu%

Mem

n/-c(ab参数)

cpu%

Mem

RequestsperSecond

Time taken for tests

100000/100

70

180

245.73

40.694

100000/200

72

190

245.79

40.684

100000/500

75

200

241.29

41.443

100000/1000

77

220

236.74

42.239

RequestsperSecond

Zeitaufwand für Tests
100000/100

70

120

143,46

69,706

100000/200

td>

72

130

140,57

71,140

100000/500

73

150

135,87

73,601

100000/1000

77

160

132,18

75.657

APACHE 出现丢包

n/-c(ab参数)

CPU%

Speicher

RequestsperSecond

Für Tests benötigte Zeit

100000/100 70 180 245,73 40,694
100000/200 72 td> 190 245,79 40,684
100000/500 75 200 241,29 41,443
100000/1000 77 220 236,74 42,239
网站名   操作系统   web服务器1.门户网站类:搜狐    . LINUX           Apache 1.3.37新浪     LINUX           Apache 2.0.54迅雷     LINUX           nginx 0.6.31163     . LINUX           Apache 2.2.62.搜索类百度      unbekannt        BWS 1.0Google   Linux           GWSSougou   FreeBSD         Apache 2.2.4Hao123  . Linux      Apache 2.2.44. 电子邮箱类126        Linux         ApacheHotmail    win2003      Microsoft-IIS 6.0新浪邮箱    F5 Apache 2.2.8263        Linux         Apache 2.2 .65. 迅雷博客    Linux          Nginx 0.6.32天涯博客    F5 Big-IP Microsoft-IIS/5.06.视频类优酷         Linux          Apache土豆         Linux        >Ku6         Linux           Apache六间房       Linux          Nginx 0.6.14 以上就介绍了三大WEB服务器对比分析 (Apache, lighttpd, nginx), 包括了方面的内容, 希望对PHP教程有兴趣的朋友有所帮助.
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Prinzipien und Praxis der PHP Template EngineNächster Artikel:Prinzipien und Praxis der PHP Template Engine

In Verbindung stehende Artikel

Mehr sehen