FastCGI 在 PHP 與 Nginx 間起什麼做用?

一:什麼是 CGI?
服務器端編程語言如(如php/java)與Web服務器之間傳遞信息的協議,約定了http頭、表單等信息的傳遞接口;php

二:FastCGI 是什麼?
本質上是協議,升級版的 CGI,回到題目,起什麼做用,規範做用,全部協議的做用都是規範。
注意不是進程,Nginx 根據此協議拓展了一個模塊,也叫FastCGI,可是重要的話說三遍,
FastCGI 與 CGI 都是協議,不是進程;
FastCGI 與 CGI 都是協議,不是進程;
FastCGI 與 CGI 都是協議,不是進程;
相比於CGI,它的優勢有以下:
一、監聽,不用每收到一個請求就加載配置文件,臨時起個進程處理,而是常駐在內存的進程,一有請求就能當即處理;
二、一 master 多 worker,和 Nginx相似,worker 與機器的內核數量相等且一一綁定的話,會提升性能,有效地利用 CPU 資源;
三、平滑啓動,這一點 Nginx 也具有,當修改配置文件後,worker 會及時地更新配置。html

三:那麼,php-fpm 是什麼?
是一個命令行的工具,也叫進程管理器,運行時會有若干個 php-fpm 進程。
其特色以下
一、實現了 FastCGI 協議;
二、用來管理 php 解釋器(php-cgi)的,
而 FastCGI 協議的優勢,上面三點已經講得很明確了。java

畫外音:
是否是有點繞,就好比說你(php解釋器)不聽話,老師(計算機)怎麼管都管不利索,而後呢,老師說你要再也不不據說,就告訴你爸(FastCGI),讓你爸收拾你,你一想萬一被老爸一腳踹牆根(老師能作到,能實現 FastCGI 協議),那還得了,就乖乖聽話,你就從叛逆少年就變成好好學生了,今後平步青雲,迎娶白富美,走上人生巔峯,拯救全人類,最後開着地球去銀河系旅遊,好了,老闆叫我,先把地球停這,大家繼續開。nginx

關於 Nginx 與 服務器端編程語言的交互
Nginx 要想與服務器端腳本語言傳遞信息,就得用 FastCGI 模塊
配置詳情:http://www.nginx.cn/doc/stand...程序員

關於 Nginx 的反向代理與負載均衡;
這兩個通常是放在一塊說的,反向代理不單獨配置。
配置詳情:http://www.nginx.cn/doc/stand...編程

若是想要更自由地配置 Nginx 怎麼辦?
有辦法,Nginx 模塊大全在此,隨便用,良心推薦。
Nginx 模塊大全:http://www.nginx.cn/doc/服務器

拓展問題:
Nginx 是一個進程,php-fpm 也是一個進程,他們之間是經過什麼方式通訊的呢?數據結構

進程間的通訊都有哪些,應用場景分別是什麼?哈哈,至少三種(管道、信號、socket);負載均衡

數據結構有什麼用?(太 TM 有用,每本計算機相關的專業書不提這個,就像會死)。socket

做爲一個 PHP 程序員,應該去學數據結構嗎?
以爲應該。並且應該用 C 學,由於只有不斷學習,才能突破40歲就沒用的魔咒,不少人說程序員40歲失業就找不到工做,我就不信,成爲專家,在40歲還能爲生計發愁?

各位怎麼想的,若是有錯誤的地方,幫忙糾正一下。

相關文章
相關標籤/搜索