1. 動的 PHP Web ページへのユーザーアクセスプロセス
ステップ 1: ユーザーが nginx サーバーに http リクエストを送信します
ステップ 2: nginx はユーザーがアクセスした URI とサフィックスに基づいてリクエストを判断します
ステップ 3: ご覧のとおり2 番目のステップから、ユーザーが動的コンテンツをリクエストした場合、nginx はリクエストを fastcgi クライアントに渡し、ユーザーが静的リソースにアクセスする場合は、nginx がそのリクエストを php-fpm に送信するのは簡単です。ユーザーが要求した静的コンテンツ。リソースがユーザーに返されます。
ステップ4: ラッパーはphp-fpmから転送されたリクエストを受信した後、php動的プログラム解析サーバーを呼び出すための新しいスレッドを生成します。
ステップ5: phpはクエリ結果をnginxに返します。
ステップ6: nginxは応答を構築します。結果をユーザーに返します
cgiプロトコル
cgi通信プロトコル
fastcgiプロトコル
fastcgiプロトコルは、主にCGIインタプリタを起動する必要性を最適化するために、CGIプロトコルの効率を補助的に改善します。 CGI インタープリター プロセスは、Web サーバー リクエストを受信するたびに php.ini ファイルをリロードして実行環境を初期化する必要がなくなりました
php-fpm プロセス マネージャー
php-fpm は、 fastcgi プロトコルはプロセス マネージャーであり、起動時にマスター プロセスとワーカー プロセスの 2 つの部分が含まれます。マスター プロセスは、通常、ポートをリッスンしてリクエストを受信するために使用される複数のワーカー プロセスがあります。 Webサーバーであり、各ワーカープロセスにはphpコードを実行するためのCGIプロセスインタープリターがあります
TCPの5層プロトコルとは何ですか?
アプリケーション層、トランスポート層、ネットワーク層、データリンク層、物理層
TCP スリーウェイ ハンドシェイクについて話しますか?
1. クライアントは、SYN を 1 に設定して接続リクエスト セグメントをサーバーに送信し、サーバーがリクエスト セグメントを受信した後、それをクライアントに送信します。クライアントは、SYN と ACK が 1 に設定され、確認番号フィールドが x+1 であり、開始シーケンス番号 seq=y
3 が生成される確認メッセージ セグメントを送信します。クライアントが確認メッセージ セグメントを受信すると、次に、ACK が 1、確認番号フィールドが y+1、シーケンス番号フィールドが x+1 に設定された確認メッセージ セグメントをサーバーに送信します
注: SYN は同期シーケンス番号です。 ACKは確認シーケンス番号です
nginxはリクエストを受信し、リスニングポートに従ってアクセスするphpファイルを見つけ、ソケットを介して常駐メモリのfast-cgiプログラムの1つとの接続を確立し、受信したphp-fpm は fast-cgi プロセスを管理し、ハングします。その後、fast-cgi が php プログラムを実行し、データの取得が完了した後、接続を通じて nginx に返します。クライアント。
クッキーとセッションの違いは何ですか?
1. Cookie はブラウザーに保存され、セッションはサーバーに保存されます。
2. セッションを適用する際には、他のユーザーがローカル Cookie を分析することができます。
3. 4K、ブラウジング中サーバーにはセッションの制限がありません
以上がNginx+Php-fpmの動作原理を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。