1. 程式人生 > 實用技巧 >CentOS 7 修改pip源

CentOS 7 修改pip源

CGI

common gateway interface (公共閘道器介面)

請求模式:
    Web Brower(瀏覽器) ----(通過http協議傳輸)----> Http Server(伺服器nginx/apache) -----> CGI Program -----> Db

Server CGI 通過 STDIN/STDOUT(標準的輸入/輸出)進行資料傳遞
nginx(動態載入模組) apache(指定載入模組)

CGI工作原理

每當客戶請求CGI的時候,WEB伺服器就請求作業系統生成一個新的CGI直譯器程序(如php-cgi.exe)CGI 的一個程序則處理完一個請求後退出,下一個請求來時再建立新程序。
當然,這樣在訪問量很少沒有併發的情況也行。可是當訪問量增大,併發存在,這種方式就不 適合了。於是就有了fastcgi。

FastCGI

像是一個常駐(long-live)型的CGI,它可以一直執行著,只要啟用後,
不會每次都要花費時間去fork一次(這是CGI最為人詬病的fork-and-execute 模式)。

一般情況下,FastCGI的整個工作流程是這樣的:
    1.Web Server啟動時載入FastCGI程序管理器(IIS ISAPI或Apache Module)
    2.FastCGI程序管理器自身初始化,啟動多個CGI直譯器程序(可見多個php-cgi)並等待來自Web Server的連線。
    3.當客戶端請求到達Web Server時,FastCGI程序管理器選擇並連線到一個CGI直譯器。 Web server將CGI環境變數和標準輸入傳送到FastCGI子程序php-cgi。
    4.FastCGI 子程序完成處理後將標準輸出和錯誤資訊從同一連線返回Web Server。
      當FastCGI子程序關閉連線時, 請求便告處理完成。
      FastCGI子程序接著等待並處理來自FastCGI程序管理器(執行在Web Server中)的下一個連線。 
      在CGI模式中,php-cgi在此便退出了。

php-fpm(PHP內建的一種fast-cgi)

php-fpm即php-Fastcgi Process Manager.
php-fpm是 FastCGI 的實現,並提供了程序管理的功能。
程序包含 master 程序和 worker 程序兩種程序。
master 程序只有一個,負責監聽埠,接收來自 Web Server 的請求,而 worker 程序則一般有多個(具體數量根據實際需要配置)每個程序內部都嵌入了一個 PHP 直譯器,是 PHP 程式碼真正執行的地方。

請求步驟

Web Brower(瀏覽器訪問) www.example.com
|
        |
   通過http協議傳輸  
|
        |
    http server
 (伺服器nginx/apache)            
|
        |
     配置解析    
路由到 www.example.com/index.php
|
        |
載入 nginx fast-cgi 模組
|
        |
fast-cgi 監聽 127.0.0.1:9000 地址
通過 fast-cgi 協議將請求轉發給 php-fpm 處理
|
        |
請求到達 127.0.0.1:9000
|
        |
php-fpm 監聽 127.0.0.1:9000
可通過 php-fpm.conf 進行修改



對PHP後端技術,對PHP架構技術感興趣的朋友,我的官方群1023755567點選此處,一起學習,相互討論。
群內已經有管理將知識體系整理好(原始碼,學習視訊等資料),歡迎加群免費領取。

PHP進階學習思維導圖、面試;文件、視訊資源免費獲取