情報(bào)を確認(rèn)した結(jié)果、大體のことは理解できました。修正してください:
Web サイトはコンピュータ上で次の分業(yè)體制で運(yùn)営されています。
リーリー上記の理解は正しいですか? もし正しいとしたら、なぜ Nginx が存在するのでしょうか? Nginx がなくても CGI を直接使ってリクエストを受け付けることができるようです。負(fù)荷分散のためだけでしょうか?
###ありがとう。###カニの悪魔。 Zhihuスタイル
まずは為什么CGI與WebServer不能互相替代?
因?yàn)?code>CGI是一種標(biāo)準(zhǔn),Nginx
則是一種應(yīng)用。兩者不是同類,所以下面用WebServer
代替Nginx
の問(wèn)題を修正してください。
CGI
是一種標(biāo)準(zhǔn),Nginx
はアプリケーションです。
瀏覽器
的角度來(lái)看,瀏覽器只負(fù)責(zé)發(fā)送請(qǐng)求,接收來(lái)自WebServer
的返回結(jié)果并渲染之。對(duì)于WebServer
來(lái)講,它需要做的僅僅是接收請(qǐng)求,尋找瀏覽器
からファイルがリクエストされ、返送されました。これさえあれば、世界は完璧になるでしょう。
しかし、次に何が起こったかは誰(shuí)もが知っています。 。私たちは靜的な Web ページを閲覧するだけでなく、フォーラムにログインし、悪口を投稿し、回答に反対票を投じて評(píng)判を得るなどの作業(yè)も行う必要があります。これらの動(dòng)作は、靜的 HTML では実現(xiàn)できません。そのため、JS、Flash、その他のフロントエンドベースのインタラクティブテクノロジーがあります。 WebServer
把包含了這些代碼的文件發(fā)給瀏覽器
、後者はそれをどのように見(jiàn)えるべきか (または、IE6 などのように見(jiàn)えてはいけないもの) に解析し、ページ上でアニメーションを確認(rèn)できます。これらはフロントエンド インタラクション テクノロジと呼ばれます。
ただし、インタラクティブなフロントエンドには実行できないものもあります。たとえば、前回は高解像度の無(wú)修正の寫(xiě)真を投稿しました。投稿者のような、素晴らしい人だなどのみんなの反応が見(jiàn)たいのです。その場(chǎng)合、このテクノロジーには が必要です。データベースを使用しますが、データベース自體は動(dòng)作するために別の言語(yǔ)を必要とします。この言語(yǔ)は Python、prel、Ruby、PHP などと呼ばれます。後者はブラウザに渡されます。 動(dòng)態(tài)語(yǔ)言
。他們對(duì)數(shù)據(jù)庫(kù)進(jìn)行增刪查改四大操作,并且返回結(jié)果給WebServer
、次に何が起こるかはわかります。 。 。 。 CGI
應(yīng)運(yùn)而僧。CGI
的定義是統(tǒng)一網(wǎng)關(guān)接口。從此WebServer
收到后臺(tái)動(dòng)態(tài)交互請(qǐng)求就直接發(fā)給CGI
,CGI
發(fā)給動(dòng)態(tài)語(yǔ)言,動(dòng)態(tài)語(yǔ)言把結(jié)果發(fā)回給CGI
,CGI
再發(fā)回給WebServer
したがって、交換可能ではありません。 CGI
是一個(gè)翻譯層,它的功能不是直接提供結(jié)果給瀏覽器,而是翻譯來(lái)自WebServer的請(qǐng)求并轉(zhuǎn)給后臺(tái)的應(yīng)用程序,并且把執(zhí)行結(jié)果翻譯成靜態(tài)網(wǎng)頁(yè)返回給WebServer
たくさんありますが、よく考えてみると、少なくとも上記と同じくらいの長(zhǎng)さの nginx の他の利點(diǎn)を列挙できると思います
ブラウザとWebサーバー間の通信はHTTPプロトコルです。ブラウザは CGI/FastCGI プロトコルをサポートしていないため、Nginx を放棄して FPM や PHP-CGI などと直接通信することはできません。
Nginx は本質(zhì)的には Web サーバーです。CGI を直接使用すると、この CGI が Web サーバーになり、ロジックが複雑になります。
CGI は動(dòng)的ロジックを処理するためのものです。
Web サーバーは HTTP サービスの単なる実裝であり、ロジックに関係なく、リクエストを受信し、対応する応答 (通常は HTML ページ、またはリクエストに応じて他のファイル) を返します。論理的な処理はすべて CGI に丸投げされます。たとえば、ユーザーのログイン認(rèn)証などです。
Nginx をメッセンジャーとして考えることができます。主な仕事は彼によって行われるのではなく、彼なしで行われます。
実際に仕事をするのは、直接行って仕事を取りに行ったり、引き継ぎをしたりする人たちです。
たくさんの用事をこなして、自分の職務(wù)をごちゃ混ぜにしたくありません。
Nginx がなければ、あなたが挙げた 4 つのポイントのうちのポイント 1 を誰(shuí)も実行できないと思いませんか?
靜的ファイルは基本的に nginx に渡されて処理されます。
動(dòng)的リクエストの場(chǎng)合、nginx はルーティングのレイヤーに相當(dāng)します。CGI は特定のビジネス ロジックの処理だけに集中する必要があります。