<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## **簡述CGI、FAST-CGI、PHP-FPM的關系** ![](https://pic2.zhimg.com/80/v2-523cfce385f83589f306398cb6d9b279_720w.jpg) PHP-FPM 即 PHP FastCGI 進程管理器,要了解 PHP-FPM ,首先要看看 CGI 與 FastCGI 的關系。 CGI 的英文全名是 Common Gateway Interface,即通用網關接口,是 Web 服務器調用外部程序時所使用的一種服務端應用的規范。 早期的 Web 通信只是按照客戶端請求將保存在 Web 服務器硬盤中的數據轉發過去而已,這種情況下客戶端每次獲取的信息也是同樣的內容(即靜態請求,比如圖片、樣式文件、HTML文檔),而隨著 Web 的發展,Web 所能呈現的內容更加豐富,與用戶的交互日益頻繁,比如博客、論壇、電商網站、社交網絡等。 這個時候僅僅通過靜態資源已經無法滿足 Web 通信的需求,所以引入 CGI 以便客戶端請求能夠觸發 Web 服務器運行另一個外部程序,客戶端所輸入的數據也會傳給這個外部程序,該程序運行結束后會將生成的 HTML 和其他數據通過 Web 服務器再返回給客戶端(即動態請求,比如基于 PHP、Python、Java 實現的應用)。利用 CGI 可以針對用戶請求動態返回給客戶端各種各樣動態變化的信息。 FastCGI 顧名思義,是 CGI 的升級版本,為了提升 CGI 的性能而生,CGI 針對每個 HTTP 請求都會 fork 一個新進程來進行處理(解析配置文件、初始化執行環境、處理請求),然后把這個進程處理完的結果通過 Web 服務器轉發給用戶,剛剛 fork 的新進程也隨之退出,如果下次用戶再請求動態資源,那么 Web 服務器又再次 fork 一個新進程,如此周而復始循環往復。 而 FastCGI 則會先 fork 一個 master 進程,解析配置文件,初始化執行環境,然后再 fork 多個 worker 進程(與 Nginx 有點像),當 HTTP 請求過來時,master 進程將其會傳遞給一個 worker 進程,然后立即可以接受下一個請求,這樣就避免了重復的初始化操作,效率自然也就提高了。而且當 worker 進程不夠用時,master 進程還可以根據配置預先啟動幾個 worker 進程等著;當空閑 worker 進程太多時,也會關掉一些,這樣不僅提高了性能,還節約了系統資源。 這樣一來,PHP-FPM 就好理解了,FastCGI 只是一個協議規范,需要每個語言具體去實現,PHP-FPM 就是 PHP 版本的 FastCGI 協議實現,有了它,就是實現 PHP 腳本與 Web 服務器(通常是 Nginx)之間的通信,同時它也是一個 PHP SAPI,從而構建起 PHP 解釋器與 Web 服務器之間的橋梁。 PHP-FPM 負責管理一個進程池來處理來自 Web 服務器的 HTTP 動態請求,在 PHP-FPM 中,master 進程負責與 Web 服務器進行通信,接收 HTTP 請求,再將請求轉發給 worker 進程進行處理,worker 進程主要負責動態執行 PHP 代碼,處理完成后,將處理結果返回給 Web 服務器,再由 Web 服務器將結果發送給客戶端。這就是 PHP-FPM 的基本工作原理,
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看