中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php中cgi和fcgi有哪些區別

發布時間:2022-07-27 17:04:15 來源:億速云 閱讀:151 作者:iii 欄目:編程語言

今天小編給大家分享一下php中cgi和fcgi有哪些區別的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

php中cgi和fcgi的區別:cgi是“common gateway interface”的縮寫,指的是通用網關接口,而fcgi是“fast common gateway interface”的縮寫,指的是快速通用網關接口。“php-cgi”是CGI協議的實現,“PHP-FPM”是FCGI協議的實現。

本文操作環境:Windows10系統、PHP8.1版、Dell G3電腦

php中cgi和fcgi區別

CGI:common gateway interface 通用網關接口

FCGI:fast common gateway interface 快速通用網關接口

php-cgi是CGI協議的實現,PHP-FPM是FCGI協議的實現。

CGI 就是web服務器如nginx跟后端動態腳本語言如PHP通信的協議接口。

擴展知識

1.場景:

瀏覽器請求web服務器如nginx,如果請求的是靜態的index.html,則nginx可以直接返回。但是如果請求的是idex.php,nginx根據配置發現不是靜態資源,需要請求后端的服務。那么,nginx在請求后端服務時,需要以什么樣的格式、發送給后端服務什么樣的數據呢?CGI就是定義格式、數據的協議。

2.CGI協議的缺點:

CGI協議每次在請求后端服務時都要啟動實現CGI協議的程序,這里就是PHP解析器。PHP解析器會解析PHP.ini文件,進行初始化工作,處理請求、返回結果。每個請求都要重新初始化,工作太冗余。所以,FCGI應運而生。

因為PHP是解釋型語言,因此需要解釋器去解釋PHP代碼。

3.FCGI的優點:

FCGI協議首先啟動一個master,master用來解析PHP.ini文件,進行初始化工作。啟動多個worker,worker用來處理具體的請求。這樣將初始化和處理具體的請求就分離了。這樣也就需要一個程序來管理master和worker,所以PHP-FPM就出現了。

FCGI采用C/S架構。將web服務器與腳本解析服務器分離開來。使得web服務器只處理靜態資源和將后端腳本解析服務器返回的數據返回給瀏覽器。

web服務器nginx不支持對外部程序如PHP程序的直接調用或者解析,因此必須通過CGI接口來調用。這是其實需要將CGI進行一個封裝,形成一個wrapper,其實就是PHP-FPM。nginx調用PHP-FPM,PHP-FPM再調用后端的PHP代碼,然后PHP-FPM返回結果給nginx。

現在PHP-FPM已經被集成到PHP內核中。

PHP-FPM與nginx經常會部署在不同服務器上,以減輕前端nginx處理靜態資源,轉發動態請求的壓力。

而且FCGI也比CGI要安全。

4.CGI協議的實現PHP-CGI

如果修改了php.ini文件,PHP-CGI是無法平滑過渡的。也就是,必須要重啟PHP-CGI程序才能使用這些新的配置。

5.FCGI協議的實現PHP-FPM

如果修改了php.ini文件,PHP-FPM可以實現平滑過渡。對于修改之前的worker,當處理完這次請求之后,會對其進行銷毀,新生成的worker可以使用新的配置。這樣也就實現了平滑過渡。

而且,如果PHP-CGI進程掛了,PHP也就不能運行了。PHP-FPM沒有這個問題,守護進程會平滑重新啟動一個子進程。

PHP-FPM在出現之前,其實有個從lighthttpd發展來的spawn-fcgi。PHP-FPM可以在初始化時創建多個worker,當有worker空閑時,可以對worker進行回收。

spawn-fcgi在高并發時會出現內存泄漏、甚至自動重啟FCGI的問題。

以上就是“php中cgi和fcgi有哪些區別”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

石景山区| 光泽县| 彰武县| 卫辉市| 永登县| 承德市| 迁西县| 汉寿县| 巨鹿县| 定结县| 姜堰市| 巴青县| 翁牛特旗| 高碑店市| 平原县| 南部县| 沿河| 衡水市| 桐庐县| 桐乡市| 开远市| 天水市| 垣曲县| 广宗县| 扎鲁特旗| 和顺县| 阿克苏市| 涿州市| 日喀则市| 铜川市| 遂溪县| 灵璧县| 农安县| 清苑县| 翁源县| 安平县| 禹城市| 南开区| 南召县| 合水县| 鹰潭市|