Webサーバー設計における主要な制約
パフォーマンス
ネットワークパフォーマンス、シングルリクエストレイテンシー、ネットワーク効率
スケーラビリティ
シンプルさ
モダビリティ
進化可能性、スケーラビリティ、カスタマイズ可能性、構成可能性、再利用可能性
可視性
程度主要コンポーネントの動作を監視できる
移植性
信頼性
nginxのアーキテクチャ設計
優れたモジュール設計
高度に抽象化されたモジュールインターフェース
すべてのモジュールは同じngx_module_tインターフェース設計仕様に従っており、このアプローチは優れたシンプルさと静的さをもたらします。スケーラビリティと再利用性
モジュールのインターフェースは非常にシンプルで柔軟性が高いです
モジュールの基本インターフェースngx_module_tは非常にシンプルで、モジュールの初期化、終了、設定項目の処理のみを含みます
ngx_module_t 構造体は、すべてのモジュールに共通のインターフェースです。init_master、init_module、init_process、init_thread、exit_thread、exit_process、および exit_master のみを定義します。
ngx_command_t タイプのコマンド配列は、モジュールが構成項目を処理する方法を指定します。
構成モジュールの設計
ngx_conf_module は、高可用性、高スケーラビリティ、高カスタマイズ性、および高スケーラビリティを提供します
コアモジュールインターフェイスの簡素化
公式コアタイプモジュールには、合計 6 つの特定のモジュールがあります: ngx_core_module 、 ngx_errlog_module 、 ngx_events_module 、ngx_openssl_module、ngx_http_module、ngx_mail_module
マルチレベル、マルチカテゴリのモジュール設計
イベント駆動型アーキテクチャ
nginx は、いわゆるイベント コンシューマーとしてプロセスやスレッドを使用しません。
リクエストの多段階非同期処理
関連するトリガーイベントに従ってブロッキングメソッドを2段階に分解
時間に応じてブロッキングメソッド呼び出しを複数段階のメソッド呼び出しに分解
「何もせず」待機する必要がある場合システムの応答によりプロセスがアイドル状態になる場合は、タイマーを使用して段階を分割します
ブロック方法をまったく分割し続けることができない場合は、独立したプロセスを使用してこのブロック方法を実行する必要があります
管理プロセス、マルチワーカープロセス設計
利点:
マルチコアシステムの同時処理機能を活用- 負荷分散
- プロセスを管理するか、ワーカープロセスのステータスを監視し、その動作を管理する責任を負います
-
プラットフォームに依存しないコードの実装
メモリ プールの設計
このメモリ プールの最大の利点は、システムからメモリを要求する複数の操作を 1 つの操作に統合することにより、CPU リソースの消費が大幅に削減され、メモリの断片化が軽減されることです
http フィルタリング モジュールの使用統合パイプラインフィルターモードの
nginxフレームワークのコア構造 本体 ngx_cycle_t
ngx_listening_t構造
ngx_cycle_t構造
').addClass('pre-numbering').hide();
$(this).addClass('has-numbering').parent().append($numbering);
for (i = 1; i ').text(i));
};
$numbering.fadeIn(1700);
});
});
上記では、さまざまな側面を含めて nginx インフラストラクチャを紹介しましたが、PHP チュートリアルに興味のある友人に役立つことを願っています。