この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 9877|答える: 0

nginx fastcgi_passプロトコルが簡単に紹介され、テストされます

[リンクをコピー]
2021年11月16日 22:16:20に投稿 | | | |
nginxは一般的にfastcgi管理プロセスにリクエストを送信し、PHPサイトを例に挙げると、php-fpmはFastcgiプロトコルの実装であり、php-cgiを管理するハイパーバイザーです。 フローチャートは以下の通りです:



CGIは「Common Gateway Interface」の略で、HTTPサーバーがあなたや他のマシン上のプログラムと「通信」するためのツールで、そのプログラムはウェブサーバー上で動作しなければなりません。

CGIの欠点:すべてのリクエストが入るとCGIは新しいプロセスをフォークし、PHPを例にすると各リクエストがかなりのメモリを消費するため、起動時に完全にGG状態になってしまいます。

この問題を解決するためにfastCGIが作られました。

FastCGIは長寿命のCGIのようなもので、起動さえすれば常に実行可能です。毎回フォークするのに時間がかかることはありません(これはCGIの中で最も批判されているフォーク&実行モードです)。 また、分散コンピューティングもサポートしており、FastCGIプログラムはウェブサーバー以外のホスト上で実行でき、他のウェブサーバーからのリクエストも受け入れることができます。
試験

ファイルが見つからない場合にnginxが404エラーを報告しないように、D:\dev_tools\nginx-1.20.0\html\phpディレクトリの下に新しいphpファイルを作成します。以下の通りです。



nginx fastcgi_passは以下のように構成されています:



nginx fastcgi_passで送信されるデータはFastCGIプロトコルに従って解析する必要があります興味があれば、私はここでsokitを使ってTCPリスニングを有効にして簡単な受信を行っています。ブラウザを使ってアクセスしてみてください:http://127.0.0.1:22229/itsvse.php、下図に示されているように:



22:06:07 DAT ---> [TCP] 127.0.0.1:1032 <1136> ..................... B.... QUERY_STRING... REQUEST_METHODGET... CONTENT_TYPE... CONTENT_LENGTH... SCRIPT_NAME/itsvse.php... REQUEST_URI/itsvse.php... DOCUMENT_URI/itsvse.php。」 DOCUMENT_ROOTD:/dev_tools/nginx-1.20.0/html/php.. SERVER_PROTOCOLHTTP/1.1..REQUEST_SCHEMEhttp... GATEWAY_INTERFACECGI/1.1..SERVER_SOFTWAREnginx/1.20.0..REMOTE_ADDR127.0.0.1.. REMOTE_PORT1025... SERVER_ADDR127.0.0.1.. SERVER_PORT22229... SERVER_NAME... REDIRECT_STATUS200... HTTP_HOST127.0.0.1:22229..HTTP_CONNECTIONkeep生きている... HTTP_CACHE_CONTROLmax年=0.@HTTP_SEC_CH_UA「クロム」; v="92"、"Aではない; ブランド」; v="99"、「Google Chrome」; v="92".. HTTP_SEC_CH_UA_MOBILE?0..HTTP_UPGRADE_INSECURE_REQUESTS1.sHTTP_USER_AGENTMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML、ゲッコのように) Chrome/92.0.4515.131 Safari/537.36.....HTTP_ACCEPTtext/html,application/xhtml+xml,application/xml; q=0.9,image/avif,image/webp,image/apng,*/*; q=0.8,application/signed-exchange; v=b3; q=0.9..HTTP_SEC_FETCH_SITEnone.. HTTP_SEC_FETCH_MODEnavigate... HTTP_SEC_FETCH_USER?1..HTTP_SEC_FETCH_DESTdocument... HTTP_ACCEPT_ENCODINGgzip、しぼんで、兄弟... HTTP_ACCEPT_LANGUAGEzh-CN,zh; q=0.9,en; q=0.8......................
(終わり)




先の:Debian(dockerイメージ)に基づくcurlをインストールしてください。
次に:E45: 'readonly' option is set (add ! to override)
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com