#Nginx はマルチプロセス モデルを使用して、マスター プロセスや複数のワーカー プロセスなどの外部サービスを提供します。マスター プロセスは、Nginx 自体と他のワーカー プロセスの管理を担当します。
実際のビジネス処理ロジックはすべてワーカー プロセス内にあります。ワーカープロセスには、クライアントから受信したリクエストを処理し続け、Nginxサービス全体が停止するまで無限ループを実行する機能があります。 (推奨学習: nginx use)
ワーカープロセスでは、ngx_worker_process_cycle()関数がこの無限ループの処理関数となります。
この関数におけるリクエストの簡単な処理フローは次のとおりです。
オペレーティング システムによって提供されるメカニズム (epoll、kqueue など)関連するイベントを生成します。
これらのイベントを受信して処理します。データを受信すると、上位レベルのリクエスト オブジェクトが生成されます。
リクエストのヘッダーと本文を処理します。
応答を生成し、クライアントに送り返します。
リクエストの処理を完了します。
タイマーやその他のイベントを再初期化します。
リクエスト処理プロセス
Nginx のリクエスト処理プロセスをより深く理解していただくために、HTTP リクエストを例として詳しく説明します。
Nginx 内からの HTTP リクエストの処理には、次の段階が含まれます。
HTTP リクエストを初期化します (クライアントからデータを読み取り、リクエストのすべての情報を含む HTTP リクエスト オブジェクトを生成します)。
リクエストヘッダーを処理します。
リクエスト本文を処理します。
このリクエスト (URL または場所) に関連付けられたハンドラーがあれば、それを呼び出します。
各フェーズ ハンドラーを順番に呼び出して処理します。
ここでは、フェーズ ハンドラーの概念を理解する必要があります。フェーズとは文字通り段階を意味します。したがって、フェーズ ハンドラーは理解しやすく、複数の処理ステージを含むハンドラーです。
各ステージには複数のハンドラーがあり、処理が特定のステージに達すると、そのステージのハンドラーが順番に呼び出され、HTTP リクエストが処理されます。
通常、フェーズ ハンドラーはこのリクエストを処理し、何らかの出力を生成します。通常、フェーズ ハンドラーは、構成ファイルで定義された場所に関連付けられます。
フェーズ ハンドラーは通常、次のタスクを実行します:
場所の構成を取得します。
適切な応答を生成します。
応答ヘッダーを送信します。
応答本文を送信します。
Nginx が HTTP リクエストのヘッダーを読み取るとき、Nginx はまずリクエストに関連付けられた仮想ホストの構成を検索します。この仮想ホストの構成が見つかった場合、通常、この HTTP リクエストは次の処理ステージ (フェーズ ハンドラー) を通過します:
NGX_HTTP_POST_READ_PHASE: リクエスト コンテンツの読み取りフェーズ
NGX_HTTP_SERVER_REWRITE_PHASE: サーバー要求アドレス書き換えフェーズ
NGX_HTTP_FIND_CONFIG_PHASE: 構成検索フェーズ:
NGX_HTTP_REWRITE_PHASE: ロケーション要求アドレス書き換えフェーズ
NGX_HTTP_POST_REWRITE_PHASE: アドレス書き換え送信要求フェーズ
NGX_HTTP_PREACESS_PHASE: アクセス権限チェック準備フェーズ
NGX_HTTP_ACCESS_PHASE: アクセス権限チェックフェーズ
NGX_HTTP_POST_ACCESS_PHASE: アクセス権限チェック送信フェーズ
NGX_HTTP_TRY_FILES_PHASE: 設定項目 try_files 処理フェーズ
NGX_HTTP_CONTENT_PHASE: コンテンツ生成フェーズ
NGX_HTTP_LOG_PHASE: ログ モジュール処理フェーズ
コンテンツ生成フェーズでは、リクエストに対する正しい応答を生成するために、Nginx は適切なコンテンツに任せる必要があります。処理するハンドラー。
このリクエストに対応する場所が構成ファイルでコンテンツ ハンドラーとして明示的に指定されている場合、Nginx は場所を照合することで対応するハンドラーを直接見つけ、リクエストをコンテンツ ハンドラーに渡すことができます。このような構成ディレクティブには、perl、flv、proxy_pass、mp4 などが含まれます。
リクエストに対応する場所に設定されたコンテンツ ハンドラーが直接ない場合、Nginx は順番に試行します。
場所にrandom_indexが設定されている場合、クライアントに送信されるファイルをランダムに選択します。
インデックス ディレクティブが場所に設定されている場合、インデックス ディレクティブで指定されたファイルがクライアントに送信されます。
autoindex on が場所で設定されている場合、リクエスト アドレスに対応するサーバー パス下のファイル リストがクライアントに送信されます。
このリクエストに対応する場所で gzip_static on が設定されている場合は、対応する .gz ファイルが存在するかどうかを確認し、存在する場合はこれをクライアントに送信します (クライアントが gzip をサポートしている場合)。
要求された URI が静的ファイルに対応する場合、静的モジュールは静的ファイルのコンテンツをクライアントに送信します。
コンテンツ生成フェーズが完了すると、生成された出力は処理のためにフィルター モジュールに渡されます。
フィルター モジュールは位置にも関係します。すべてのフィッター モジュールはチェーンに編成されます。出力は、フィルター モジュールからの戻り値が処理の完了を示すまで、すべてのフィルターを順番に通過します。
ここでは、次のような一般的なフィルター モジュールをいくつか示します。
サーバー側インクルード。
XSLT フィルタリング。
画像のスケーリングなど。
gzip 圧縮。
すべてのフィルターの中には、注意が必要なフィルター モジュールがいくつかあります。命令は呼び出し順に次のとおりです。
write: 出力をクライアントに書き込み、実際には接続に対応するソケットに書き込みます。
postpone: このフィルターはサブリクエスト、つまりサブリクエストを担当します。
copy: コピーする必要があるいくつかの buf (ファイルまたはメモリ) をコピーし、処理のために残りの本体フィルターに渡します。
以上がNginxを使用してリクエストを処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Nginxは、高い並行リクエストの処理に適していますが、Apacheは複雑な構成と機能的拡張が必要なシナリオに適しています。 1.Nginxは、イベント駆動型の非ブロッキングアーキテクチャを採用しており、高電流環境に適しています。 2。Apacheはプロセスまたはスレッドモデルを採用して、複雑な構成のニーズに適したリッチモジュールエコシステムを提供します。

Nginxは、Webサイトのパフォーマンス、セキュリティ、およびスケーラビリティを改善するために使用できます。 1)逆プロキシおよびロードバランサーとして、Nginxはバックエンドサービスを最適化し、トラフィックを共有できます。 2)イベント駆動型および非同期アーキテクチャを通じて、nginxは高い並行接続を効率的に処理します。 3)構成ファイルでは、静的ファイルサービスやロードバランシングなどのルールの柔軟な定義を可能にします。 4)最適化の提案には、GZIP圧縮の有効化、キャッシュの使用、およびワーカープロセスの調整が含まれます。

Nginxunitは複数のプログラミング言語をサポートし、モジュラー設計を通じて実装されています。 1。言語モジュールの読み込み:構成ファイルに従って対応するモジュールをロードします。 2。アプリケーションの起動:呼び出し言語が実行されたときにアプリケーションコードを実行します。 3。リクエスト処理:リクエストをアプリケーションインスタンスに転送します。 4。応答返品:処理された応答をクライアントに返します。

NginxとApacheには独自の利点と短所があり、さまざまなシナリオに適しています。 1.Nginxは、高い並行性と低リソース消費シナリオに適しています。 2。Apacheは、複雑な構成とリッチモジュールが必要なシナリオに適しています。コア機能、パフォーマンスの違い、ベストプラクティスを比較することで、ニーズに最適なサーバーソフトウェアを選択するのに役立ちます。

質問:nginxを開始する方法は?回答:nginxスタートアップnginx検証nginxはnginxを開始しました他のスタートアップオプションを自動的に開始

nginxが開始されるかどうかを確認する方法:1。コマンドラインを使用します:SystemCTLステータスnginx(Linux/unix)、netstat -ano | FindStr 80(Windows); 2。ポート80が開いているかどうかを確認します。 3.システムログのnginx起動メッセージを確認します。 4. Nagios、Zabbix、Icingaなどのサードパーティツールを使用します。

NGINXサービスをシャットダウンするには、次の手順に従ってください。インストールタイプを決定します:Red Hat/Centos(SystemCtl Status Nginx)またはDebian/Ubuntu(Service Nginx Status)サービスを停止します:Red Hat/Centos(SystemCtl Stop Nginx)またはDebian/Ubuntu(Service Nginx Stop)無効自動起動(オプション):Debuntos/Centos/Centos/Centos/Centos/Centos (syst

Windowsでnginxを構成する方法は? nginxをインストールし、仮想ホスト構成を作成します。メイン構成ファイルを変更し、仮想ホスト構成を含めます。 nginxを起動またはリロードします。構成をテストし、Webサイトを表示します。 SSLを選択的に有効にし、SSL証明書を構成します。ファイアウォールを選択的に設定して、ポート80および443のトラフィックを許可します。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

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

メモ帳++7.3.1
使いやすく無料のコードエディター
