首頁  >  文章  >  後端開發  >  FastCGI在PHP與Nginx之間的作用介紹

FastCGI在PHP與Nginx之間的作用介紹

不言
不言轉載
2019-03-04 14:02:312141瀏覽

這篇文章帶給大家的內容是關於FastCGI在PHP與Nginx之間的作用介紹,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

一:什麼是 CGI?
伺服器端程式語言如(如php/java)與Web伺服器之間傳遞訊息的協議,約定了http頭、表單等資訊的傳遞介面;

二:FastCGI 是什麼?
本質上是協議,升級版的 CGI,回到題目,起什麼作用,規範作用,所有協議的作用都是規範。
注意不是進程,Nginx 根據此協議拓展了一個模組,也叫FastCGI,但是重要的話說三遍,
FastCGI 與CGI 都是協議,不是進程;
FastCGI 與CGI 都是協議,不是進程;
FastCGI 與CGI 都是協議,不是進程;
相比於CGI,它的優點有如下:
1、監聽,不用每收到一個請求就加載配置文件,臨時起個進程處理,而是常駐在記憶體的進程,一有請求就能立即處理;
2、一master 多worker,和Nginx類似,worker 與機器的核心數量相等且一一綁定的話,會提高效能,有效地利用CPU 資源;
3、平滑啟動,這點Nginx 也具備,當修改設定檔後,worker 會及時更新設定。

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

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

關於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 有用,每本電腦相關的專業書不提這個,就像會死)。

身為一個 PHP 程式設計師,應該去學資料結構嗎?
覺得應該。而且應該用C 學,因為只有不斷學習,才能突破40歲就沒用的魔咒,很多人說程式設計師40歲失業就找不到工作,我就不信,成為專家,在40歲還能為生計發愁?


以上是FastCGI在PHP與Nginx之間的作用介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:segmentfault.com。如有侵權,請聯絡admin@php.cn刪除