nginx が http リクエストを処理する方法
nginx の http リクエストの処理は、nginx の最も重要な機能であり、最も複雑な部分です。実行プロセスについては大まかに説明できます。
リクエスト ヘッダーを読む;
リクエストを解析するline;
リクエスト ヘッダーを解析します;
リクエスト本文を読み取ります;
リクエスト ヘッダーを解析します。最も重要な部分、つまり多段階処理です。nginx はリクエスト処理を 11 段階に分割します。これは、nginx がリクエスト行とリクエストヘッダーを読み取った後、リクエストを構造体 ngx_http_request_t にカプセル化し、各ステージのハンドラーがこの ngx_http_request_t に基づいて、uri の書き換え、権限制御、パス検索、コンテンツの生成、ロギングなどのリクエストを処理します。
結果をクライアントに返します;
ngx_http_process_request_line 関数の主な機能は、リクエスト ラインを解析することです。また、ネットワーク IO 操作が関係しているため、短いリクエスト ラインでも一度に読み取れない可能性があるため、前の ngx_http_init_request 関数では、ngx_http_process_request_line関数が設定されている 読み取りイベントの処理関数には、固有の ngx_event_t * 型パラメーターのみがあり、関数の開始時に、タイムアウト イベントであるかどうかを判断する必要もあります。タイムアウト イベントである場合は、リクエストと接続を閉じます。それ以外の場合は、通常の解析プロセスを開始します。まず ngx_http_read_request_header 関数を呼び出してデータを読み取ります。
サードパーティのモジュールもここに登録されているため、多段階処理は nginx モジュールの最も重要な部分です;
たとえば、誰かが次のようなサードパーティのモジュールを作成しました。ページ キャッシュ モジュールには nginx と memcache を使用します。memcache を redis クラスターなどに置き換えることもできます。
そして、nginx の多段階処理は、Python や golang Web フレームワークのミドルウェアに似ています。後者は主に、ハンドラーを階層化するデコレーター モード、カプセル化、nginx は配列 (リンク リスト) を使用して複数段階のハンドラーを結合し、ハンドラーのリンク リストに従ってそれらを実行します;
送信されたユニフォーム リソース ロケーター (URL)リソースの場合、Web サーバーが行う必要があるのは、URL をローカル ファイル システムのパスにマップし、対応するファイルを読み取ってクライアントに返すことだけです。しかし、これは初期のインターネットの要求にすぎませんでしたが、現在ではインターネットにはさまざまな複雑な要求があり、Web サーバーはセキュリティや権限制御、マルチメディア コンテンツ、動的な Web ページなどの問題を処理する必要があります。これらの複雑な要件により、Web サーバーはもはや短いプログラムではなく、慎重に設計してモジュール化する必要があるシステムになっています。
nginx の優れたモジュール性は、リクエスト処理プロセスの多段階分割に反映されています。多段階処理プロセスは組み立てラインのようなものです。1 つの nginx プロセスは、異なる段階で複数のリクエストを同時に処理できます。 nginx を使用すると、開発者は処理プロセスのどの段階でもモジュールを登録でき、起動フェーズ中に、nginx は各段階で登録されたすべてのモジュール処理関数を順番に実行チェーンに編成します。
Nginx 関連の技術記事の詳細については、Nginx の使用法チュートリアル 列にアクセスして学習してください。
以上がnginx が http リクエストを処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック











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

Docker Containerの起動手順:コンテナ画像を引く:「Docker Pull [Mirror Name]」を実行します。コンテナの作成:「docker create [options] [mirror name] [コマンドとパラメーター]」を使用します。コンテナを起動します:「docker start [container name or id]」を実行します。コンテナのステータスを確認してください:コンテナが「Docker PS」で実行されていることを確認します。

すべてのコンテナ(Docker PS)をリストする手順に従って、Dockerコンテナ名を照会できます。コンテナリストをフィルタリングします(GREPコマンドを使用)。コンテナ名(「名前」列にあります)を取得します。

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

Dockerでコンテナを作成します。1。画像を引く:Docker Pull [ミラー名]2。コンテナを作成:Docker Run [Options] [Mirror Name] [コマンド]3。コンテナを起動:Docker Start [Container Name]

nginxバージョンを照会できるメソッドは次のとおりです。nginx-vコマンドを使用します。 nginx.confファイルでバージョンディレクティブを表示します。 nginxエラーページを開き、ページタイトルを表示します。

クラウドサーバーでnginxドメイン名を構成する方法:クラウドサーバーのパブリックIPアドレスを指すレコードを作成します。 NGINX構成ファイルに仮想ホストブロックを追加し、リスニングポート、ドメイン名、およびWebサイトルートディレクトリを指定します。 nginxを再起動して変更を適用します。ドメイン名のテスト構成にアクセスします。その他のメモ:SSL証明書をインストールしてHTTPSを有効にし、ファイアウォールがポート80トラフィックを許可し、DNS解像度が有効になることを確認します。

NGINXサーバーがダウンすると、次のトラブルシューティング手順を実行できます。NGINXプロセスが実行されていることを確認します。エラーメッセージのエラーログを表示します。 nginx構成の構文を確認します。 nginxには、ファイルにアクセスするために必要な権限があることを確認してください。ファイル記述子をチェックして制限を開いてください。 Nginxが正しいポートで聴いていることを確認してください。 nginxトラフィックを許可するために、ファイアウォールルールを追加します。バックエンドサーバーの可用性を含む逆プロキシ設定を確認します。さらなる支援については、テクニカルサポートにお問い合わせください。
