fastcgi:
fastcgi は cgi から開発および改良されました。従来の CGI インターフェイス方式の主な欠点は、パフォーマンスが低いことです。これは、http サーバーが動的プログラムに遭遇するたびに、スクリプト パーサーを再起動して解析を実行する必要があり、結果が http サーバーに返されるためです。大量の同時アクセスを扱う場合、これはほとんど利用できません。また、従来の CGI インターフェース方式はセキュリティが低く、現在ではほとんど使用されていません。
fastcgi インターフェイス モードは c/s 構造を採用しており、http サーバーとスクリプト解析サーバーを分離し、スクリプト解析サーバー上で 1 つ以上のスクリプト解析デーモンを起動できます。 http サーバーが動的プログラムに遭遇するたびに、そのプログラムは fastcgi プロセスに直接配信されて実行され、その結果がブラウザーに返されます。この方法により、http サーバーは静的リクエストを排他的に処理したり、動的スクリプト サーバーの結果をクライアントに返すことができるため、アプリケーション システム全体のパフォーマンスが大幅に向上します。
nginx は、外部プログラムの直接呼び出しや解析をサポートしていません。すべての外部プログラム (PHP を含む) は、fastcgi インターフェイスを通じて呼び出す必要があります。 fastcgi インターフェイスは、Linux 上のソケットです (このソケットはファイル ソケットまたは IP ソケットにすることができます)。 CGI プログラムを呼び出すには、fastcgi ラッパーも必要です (ラッパーは、別のプログラムを開始するために使用されるプログラムとして理解できます) このラッパーは、ポートやファイル ソケットなどの固定ソケットにバインドされます。 nginx が fastcgi インターフェイスを介してこのソケットに CGI リクエストを送信すると、ラッパーはリクエストを受信し、新しいスレッドを生成します。このスレッドはインタープリターまたは外部プログラムを呼び出してスクリプトを処理し、戻りデータを読み取ります。その後、ラッパーは返されたデータは、fastcgi インターフェイスを介して固定ソケットに沿って nginx に渡され、最後に、nginx は返されたデータをクライアントに送信します。これが nginx fastcgi の全体的な操作プロセスです。詳細なプロセスは図に示すとおりです。
#例: #nginx の fastcgi パラメータの最適化設定例nginx fastcgi を設定した後、nginx での php 環境の高速かつ安定した動作を保証するために、いくつかの fastcgi 最適化命令を追加する必要があります。最適化の例を以下に示します。nginx メイン設定ファイルの http レベルに次のコードを追加します。
fastcgi_cache_path /usr/local/nginx/fastcgi_cache levels=1:2 keys_zone=test:10m inactive=5m; fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; fastcgi_buffer_size 64k; fastcgi_buffers 4 64k; fastcgi_busy_buffers_size 128k; fastcgi_temp_file_write_size 128k; fastcgi_cache test; fastcgi_cache_valid 200 302 1h; fastcgi_cache_valid 301 1d; fastcgi_cache_valid any 1m;
上記のコードの意味:
以上がNginx で FastCGI を構成および最適化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。