ホームページ > バックエンド開発 > PHPチュートリアル > nginxインフラストラクチャ

nginxインフラストラクチャ

WBOY
リリース: 2016-07-29 08:51:24
オリジナル
1163 人が閲覧しました

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 チュートリアルに興味のある友人に役立つことを願っています。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート