# 6.2 FastCGI
## 應用服務器
CGI這種技術可以使Web服務器成為動態的,所謂動態的就是,大家都訪問相同的資源,但是得到的結果是不一樣的。
因此許多公司將他們的服務,通過這種方式暴露出來,這些服務器不是提供網頁服務,而是提供應用信息服務的,這種稱之為應用服務器。比如微信的開放平臺,就有些服務是通過URL方式暴露出來供客戶使用的。
https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_1
應用服務器使用CGI每次請求都fork一次,性能太不靠譜,因此有許多新的技術出現,比如fastCGI,是一種避免fork的技術,另外有一些HTTP服務器的專長就是做應用服務,并不擅長做頁面處理。在工作環境中,選擇什么服務器,跟公司業務,技術人員對技術的熟悉度有關系。
##fastCGI
快速通用網關接口(Fast Common Gateway Interface/FastCGI)是通用網關接口(CGI)的改進,描述了客戶端和服務器程序之間傳輸數據的一種標準。FastCGI致力于減少Web服務器與CGI程式之間互動的開銷,從而使服務器可以同時處理更多的Web請求。與為每個請求創建一個新的進程不同,FastCGI使用持續的進程來處理一連串的請求。這些進程由FastCGI進程管理器管理,而不是web服務器。

* step1. Web 服務器啟動時載入初始化FastCGI執行環境 。 例如IIS ISAPI、apache mod_fastcgi、nginx ngx_http_fastcgi_module、lighttpd mod_fastcgi
* step2. FastCGI進程管理器自身初始化,啟動多個CGI解釋器進程并等待來自Web 服務器的連接。啟動FastCGI進程時,可以配置以ip和UNIX 域socket兩種方式啟動。
* step3. 當客戶端請求到達Web 服務器時, Web 服務器將請求采用socket方式轉發到 FastCGI主進程,FastCGI主進程選擇并連接到一個CGI解釋器。Web 服務器將CGI環境變量和標準輸入發送到FastCGI子進程。
* step4. FastCGI子進程完成處理后將標準輸出和錯誤信息從同一socket連接返回Web 服務器。當FastCGI子進程關閉連接時,請求便處理完成。
* step5. FastCGI子進程接著等待并處理來自Web 服務器的下一個連接。
由于 FastCGI 程序并不需要不斷的產生新進程,可以大大降低服務器的壓力并且產生較高的應用效率。它的速度效率最少要比CGI 技術提高 5 倍以上。它還支持分布式的部署, 即 FastCGI 程序可以在web 服務器以外的主機上執行。
總結:CGI 就是所謂的短生存期應用程序,FastCGI 就是所謂的長生存期應用程序。FastCGI像是一個常駐(long-live)型的CGI,它可以一直執行著,不會每次都要花費時間去fork一次(這是CGI最為人詬病的fork-and-execute 模式)。
- 概要
- 1 分布式存儲fastDFS
- 1.1 fastDFS 通用介紹
- 1.2 fastDFS安裝和使用
- 1.3 基于fastDFS實現分布式
- 2 緩存數據庫redis快速搭建
- 2.1 環境安裝
- 2.2 redis數據類型
- 2.3 redis訂閱發布模式
- 2.4 redis事務
- 2.5 redis備份
- 3 redis詳細攻略
- 3.1 redis簡介
- 3.2 redis使用場景
- 3.3 redis基本操作
- 3.4 redis數據類型
- 3.4.1 字符串
- 3.4.2 HASH-字典
- 3.4.3 List-列表
- 3.4.4 Set-集合
- 3.4.5 Sorted Set-有序集合
- 3.4.6 訂閱-發布
- 3.4.7 事務
- 3.5 redis配置文件
- 3.6 持久化
- 3.7 redis性能測試
- 3.8 redis-C-API
- 3.9 redis-C++-API
- 3.10 總結與建議
- 4 memcache緩存數據庫
- 4.1 什么是memcached
- 4.2 memcached的特征
- 4.3 memcached的內存管理
- 4.4 如何使用memcached
- 4.5 memcached參數詳解
- 4.6 memcached安裝
- 4.7 memcached-C客戶端
- 4.8 memcached-C++客戶端
- 5 Nginx
- 6 FastCGI
- 6.1 CGI
- 6.2 FastCGI
- 6.3 Nginx與FastCGI
- 7 Nginx上部署fastDFS
- 8 項目概要
- 8.1 上傳文件功能
- 8.2 主界面顯示與下載文件功能
- 8.3 注冊功能
- 8.4 登陸功能
- 8.5 文件分類功能
- 8.6 個人網盤功能
- 8.8 秒傳功能