ホームページ バックエンド開発 PHPチュートリアル 3大WEBサーバー(apache、lighttpd、nginx)の比較分析

3大WEBサーバー(apache、lighttpd、nginx)の比較分析

Jul 30, 2016 pm 01:31 PM
apache fastcgi linux nbsp nginx

1. lighttpd

Lighttpd は、メモリのオーバーヘッドが非常に低く、CPU 使用率が低く、優れたパフォーマンスと豊富なモジュールを備えたプログラムです。 lighttpd は、数多くのオープンソースの軽量 Web サーバーの中でも優れたものの 1 つです。 FastCGI、CGI、Auth、出力圧縮、URL 書き換え、エイリアス、その他の重要な機能をサポートします。

Lighttpd は、fastcgi を使用して php を実行します。これにより、大量の同時実行に応答するために使用する PHP プロセスが非常に少なくなります。

Fastcgi の利点は次のとおりです:

· 安定性の観点から、fastcgi は独立したプロセス プールで CGI を実行します。1 つのプロセスが停止した場合、システムはそれを簡単に破棄し、ロジックを実行する新しいプロセスを再割り当てできます。

· out out out out out out of safety out out of fastcgi とホスト サーバーに任せられるため、ホスト サーバーは通常の動的 Web ページの場合は IO に集中できます。処理できるのはほんの一部であり、大量の画像の静的IO処理にはロジックプログラムの関与を一切必要としません(注1)

・fastcgiはスケーラビリティの点で中立的な技術標準であり、あらゆる言語 (php、java、python...) で書かれた処理プログラムを完全にサポートします

2. apache

netcraft (

www.netsraft.co.英国

)、世界の Web サーバーの 50% 以上が Apache を使用しています。

1995 年 4 月に、最初の Apache (0.6. バージョン 2) が Apache グループによって公開およびリリースされました。Apache グループは非営利団体です。これは、完全にインターネットを通じて動作し、Apache Web サーバーの標準ディストリビューションにどのコンテンツを含めるかを決定します。新規作成時には、誰でも隠れたエラーを変更したり、新しい機能を提供したりすることができます。コードは Apache グループに送信され、グループはその特定のコンテンツをレビューしてテストし、問題がなければ、コードは Apache に統合されます。

Apache の主な機能:

1) ほぼすべてのコンピューターで実行できます。

2) 最新の http/1.1 プロトコルをサポート

3) シンプルで強力なファイルベースの構成 (httpd.conf)。

4) 共通ゲートウェイ インターフェイス (cgi) をサポート

5) 仮想ホストをサポート。

6) http 認証をサポートします。

7) perl を統合します。

8) 統合されたプロキシ サーバー

9) サーバーのステータスは Web ブラウザーを通じて監視でき、ログはカスタマイズできます

10) をサポートします。サーバー側インクルージョン コマンド (ssi)

11) セキュア ソケット レイヤー (ssl) をサポートします。

12) ユーザー セッション プロセスの追跡機能があります。

13) fastcgi をサポートします

14) Java サーブレットをサポートします

3.nginx

Nginx はロシア人によって書かれた非常に軽量な HTTP サーバーです。Nginx (「エンジン X」と発音します) は、高性能 HTTP およびリバース プロキシ サーバーであり、IMAP/POP3/SMTP プロキシ サーバーでもあります。 Nginx は、ロシアで 2 番目にアクセス数の多い Rambler.ru サイト用にロシアの Igor Sysoev によって開発されました

Nginx はイベント駆動型で記述されているため、非常に優れたパフォーマンスを備え、非常に効率的なリバース プロキシと負荷分散でもあります。 Lighttpdに匹敵する性能を持っていますが、Lighttpdのメモリリーク問題はなく、Lighttpdのmod_proxyも問題があり長らく更新されていませんでした。ただし、Nginx は CGI モードでの実行をサポートしていません。CGI モードによって引き起こされるプログラムの脆弱性を軽減できるためです。したがって、PHP プログラムを実行するには FastCGI を使用する必要があります。

nginx は、HTTP サーバーとして、次の基本機能を備えています:

静的ファイル、インデックス ファイルの処理、およびファイル記述子のバッファリングの自動有効化。

キャッシュレス リバース プロキシ アクセラレーション、シンプルなロード バランシング、フォールト トレランス。

FastCGI、シンプルなロードバランシング、フォールトトレランス。

モジュール構造。 gzip 圧縮、バイト範囲、チャンク応答、SSI フィルターおよびその他のフィルターが含まれます。 1 つのページ内に複数の SSI が存在し、FastCGI または別のプロキシ サーバーによって処理される場合、この処理はお互いを待たずに並行して実行できます。

Nginx はパフォーマンスの最適化のために特別に開発されており、パフォーマンスが最も重要な考慮事項であり、実装では効率に細心の注意を払っています。カーネル ポーリング モデルをサポートしており、高負荷のテストに耐えることができ、最大 50,000 の同時接続をサポートできることが報告されています。

Nginxは安定性が高いです。他の HTTP サーバーがアクセスのピークに遭遇したり、誰かが悪意を持って遅い接続を開始したりすると、サーバーの物理メモリが枯渇し、スワップが頻繁に発生し、応答が失われる可能性があり、サーバーは再起動するしかありません。たとえば、現在 Apache のプロセスが 200 を超えると、Web の応答速度は明らかに非常に遅くなります。 Nginx は段階的リソース割り当てテクノロジーを採用しており、CPU とメモリの使用量が非常に低くなります。 nginx は公式に、10,000 の非アクティブな接続を維持し、メモリを 2.5M しか占有しないと述べているため、DOS のような攻撃は基本的に nginx には役に立ちません。安定性の点では、nginx は lighthttpd よりも優れています。

Nginx はホットデプロイメントをサポートしています。特に起動が簡単で、ほぼ 24 時間年中無休で中断することなく実行でき、数か月間実行したとしても再起動する必要はありません。サービスを中断せずにソフトウェアのバージョンをアップグレードすることもできます。


プロキシ良いとても良いサポートされていません システム圧力は比較的高い 非常に小さい比較的小さい安定性良いとても良い悪いセーフセックス良い平均的平均的技術サポートとても良い珍しい平均 静的ファイル処理平均非常に良い良いVhosts仮想ホストサポートされているサポートされていないサポートされているリバースプロキシ平均非常に良い普通セッションスティッキーサポートされているサポートされていないサポートされていない

サーバー

Apache

Nginx

Lighttpd

とても良い

Fcgi

悪い

良い

ホットな展開

サポートされていない

注: 比較的大規模な Web サイトでは、サーバーコストの節約は間違いなく客観的です。小規模な Web サイトには、多くのサーバーが存在しない場合が多く、Apache などの従来の Web サーバーを使用していれば存続できるようです。しかし、これには明らかな欠点があります。Apache はトラフィックのバースト (クローラーや Digg の影響など) に対処するときに簡単に過負荷になってしまいます。この場合、Nginx が最適です。

推奨ソリューション:

Apache バックエンドサーバー (主に php と中国語のurlなどの一部の機能リクエストを処理します)

Nginx フロントエンドサーバー (それを使って占有するシステムリソースが少なくなり、静的ページに対する大量のリクエストを処理できる利点が得られます)

Lighttpd 画像サーバー

一般に、nginxの改良により、それが主流になるでしょう将来的にはウェブサーバー。 dynamicページと静的ページのリクエストと並行性に応じて、3種類のソフトウェアの応答時間をテストします
l

-c(abパラメーター)

cpu%mem

1秒あたりのリクエスト数126.6NGINX
テストにかかった時間

100000/100

64

60

462.75
21.6

100000/200

67

60

312.0 7
32.4

100000/500

83

60

137.24
72.8

100000/1000
エラーパケットロス

94

60

78 .9

n /-c (ab パラメーター)

cpu%
Mem

Re QuestsperSecondAPACHE
テストにかかった時間

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

n/-c (abパラメータ)

cpu%
Mem

RequestsperSecond
テストにかかった時間

100000/100

40.6

170

690.72
14.47

1 00000/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

l ダイナミックページ内部コミュニティホームページ

LIGHTTPD

542 3025.7938.761000/ 10006225024.8340.28

n/-c (abパラメータ)

cpu%

M em

1秒あたりのリクエスト数

テストにかかった時間

1000/100

50

200

33.54

29.816

1000/200

52

210

30.43

32.858

1000/500

NGINX

n/-c (ab パラメータ)cpu% MemRequestsperSecondテストにかかった時間1000/10053.825083.1212.3051000/20055.825074.0513.5041000/5005626058.99 1000/1000アパッチ

16.951

58

260

43.41

23.347

n / -c (ab パラメーター)100000/100 100000/200100000/500100000/1000l

cpu%

Mem

RequestsperSecond

テストにかかった時間

60

200

27.37

36.541

61

220

23.82

41.981

73

150

20.59

48.562

53

200

27.18

36.796

PHPINFO 関数ページ Mem

RequestsperSecond

テストにかかった時間

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に達したときにテストプログラムが終了しました

NGINX

n/-c (abパラメータ)

cpu%

Mem

RequestsperSecond

テストにかかった時間

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

APACHEパケットロス

n/-c (abパラメータ)

cpu%

Mem

1秒あたりのリクエスト数

テストにかかった時間

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

ウェブサイト名 オペレーティングシステム Webサーバー

1. ポータルウェブサイトのカテゴリ:

Sohu LINUX apache 1.3.37

Sina LINUX apache 2.0.54

Thunder LINUX nginx 0.6.31

163 LINUX apache 2.2.6

2.検索クラス

Baidu 不明 BWS 1.0

Google linux g ws

総合FreeBSD apache 2.2.4

Hao123 linux apache 2.2.4

4. 電子メールクラス

126 linux apache

Hotmail win2003 Microsoft-IIS 6 .0

Sina Mailbox F5 Big-IP apache 2.2.8

263 Linux アパッチ 2.2 .6 类5. ブログ 浪シナブログ Linux nginx 0.5.35

捜胡ブログ Linux nginx

雷ブログ Linux nginx 0.6.32

天亜ブログ F5 Big-IP Microsoft-IIS/5.0

6。動画カテゴリ

Youku nginx 0.6.14

以上、3つの主要なWEBサーバー(apache、lighttpd、nginx)の比較分析を内容も含めて紹介しましたが、PHPチュートリアルに興味のある友人の参考になれば幸いです。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Linuxアーキテクチャ:5つの基本コンポーネントを発表します Linuxアーキテクチャ:5つの基本コンポーネントを発表します Apr 20, 2025 am 12:04 AM

Linuxシステムの5つの基本コンポーネントは次のとおりです。1。Kernel、2。Systemライブラリ、3。Systemユーティリティ、4。グラフィカルユーザーインターフェイス、5。アプリケーション。カーネルはハードウェアリソースを管理し、システムライブラリは事前コンパイルされた機能を提供し、システムユーティリティはシステム管理に使用され、GUIは視覚的な相互作用を提供し、アプリケーションはこれらのコンポーネントを使用して機能を実装します。

GITの倉庫アドレスを確認する方法 GITの倉庫アドレスを確認する方法 Apr 17, 2025 pm 01:54 PM

gitリポジトリアドレスを表示するには、次の手順を実行します。1。コマンドラインを開き、リポジトリディレクトリに移動します。 2。「git remote -v」コマンドを実行します。 3.出力と対応するアドレスでリポジトリ名を表示します。

Laravelインストールコード Laravelインストールコード Apr 18, 2025 pm 12:30 PM

Laravelをインストールするには、これらの手順を順番に進みます。コンポーザー(MacOS/LinuxとWindows用)インストールLaravelインストーラーをインストールします。

LinuxのDocker:Linuxシステムのコンテナ化 LinuxのDocker:Linuxシステムのコンテナ化 Apr 22, 2025 am 12:03 AM

Linuxは、豊富なツールとコミュニティサポートを提供するネイティブプラットフォームであるため、LinuxでDockerが重要です。 1. docker:sudoapt-getupdateとsudoapt-getinstalldocker-cedocker-ce-clicotainerd.ioを使用します。 2。コンテナの作成と管理:Dockerrun-D-Namemynginx-P80:80NginxなどのDockerrunコマンドを使用します。 3。DockerFileを書き込み:画像サイズを最適化し、マルチステージ構造を使用します。 4。最適化とデバッグ:DockerLogsとDockerexを使用します

NginxとApache:重要な違​​いを理解する NginxとApache:重要な違​​いを理解する Apr 26, 2025 am 12:01 AM

NginxとApacheにはそれぞれ独自の利点と欠点があり、選択は特定のニーズに基づいている必要があります。 1.Nginxは、非同期の非ブロッキングアーキテクチャのため、高い並行性シナリオに適しています。 2。Apacheは、モジュラー設計のため、複雑な構成を必要とする低変動シナリオに適しています。

MacOSとLinux:機能と機能を比較します MacOSとLinux:機能と機能を比較します Apr 18, 2025 am 12:19 AM

MacOSは、ユーザーエクスペリエンスとハードウェアとソフトウェアの統合を評価するのに適していますが、Linuxは高いカスタマイズ性と柔軟性を必要とするのに適しています。 MacOSはシンプルで使いやすく、Apple製品とシームレスに統合されています。 Linuxはオープンソースであり、さまざまな環境に適応しており、コミュニティリソースが豊富です。

CでDMA操作を理解する方法は? CでDMA操作を理解する方法は? Apr 28, 2025 pm 10:09 PM

CのDMAとは、直接メモリアクセステクノロジーであるDirectMemoryAccessを指し、ハードウェアデバイスがCPU介入なしでメモリに直接データを送信できるようにします。 1)DMA操作は、ハードウェアデバイスとドライバーに大きく依存しており、実装方法はシステムごとに異なります。 2)メモリへの直接アクセスは、セキュリティリスクをもたらす可能性があり、コードの正確性とセキュリティを確保する必要があります。 3)DMAはパフォーマンスを改善できますが、不適切な使用はシステムのパフォーマンスの低下につながる可能性があります。実践と学習を通じて、DMAを使用するスキルを習得し、高速データ送信やリアルタイム信号処理などのシナリオでその効果を最大化できます。

CでハイDPIディスプレイを処理する方法は? CでハイDPIディスプレイを処理する方法は? Apr 28, 2025 pm 09:57 PM

CでのハイDPIディスプレイの取り扱いは、次の手順で達成できます。1)DPIを理解してスケーリングし、オペレーティングシステムAPIを使用してDPI情報を取得し、グラフィックスの出力を調整します。 2)クロスプラットフォームの互換性を処理し、SDLやQTなどのクロスプラットフォームグラフィックライブラリを使用します。 3)パフォーマンスの最適化を実行し、キャッシュ、ハードウェアアクセラレーション、および詳細レベルの動的調整によりパフォーマンスを改善します。 4)ぼやけたテキストやインターフェイス要素などの一般的な問題を解決し、DPIスケーリングを正しく適用することで解決します。

See all articles