亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

php安裝模式cgi,fastcgi,php_mod比較

2024-09-04 11:50:17
字體:
來源:轉載
供稿:網友

先了解一下普通cgi的工作流程:
web server收到用戶請求,并把請求提交給cgi程序,cgi程序根據請求提交的參數作相應處理,然后輸出標準的html語句返回給web server,web server再返回給客戶端,這就是普通cgi的工作原理。

從 上面看,cgi所要實現的不過是動態網頁而已,這種處理方式的特點就是每接到一個請求,web server都要fork出一個單獨的cgi程序的進程來處理,這種方式的好處是把web server和具體的程序處理獨立開來,結構清晰,可控性強,同時缺點就是如果在高訪問需求的情況下,cgi的進程fork就會成為很大的服務器負擔,想 象一下數百個并發請求導致服務器fork出數百個進程就明白了。這也是為什么cgi一直背負性能低下,高資源消耗的惡名的原因。

相應的有問題就有解決方案,目前流行的方案就是使用模塊設計,基本上目前的web server都有相應的模塊機制來擴充它的功能, 只要按照其設計規范設計出來的模塊,就能插入到web server自身的進程處理,因此性能有很大改觀,例如IIS的isapi,apache的dso。但是,這種方法也不是沒有缺點的,例如對于不同的 web server,要按照不同標準開發,無法做到webserver無關性;例如這將輸入驗證的工作轉交給了web server,沒辦法自由處理;例如一旦出現問題將影響整個web server處理流程;例如插入web server進程導致的無法以多用戶標示運行,無法處理虛擬主機權限等。

所幸我們還有另外的選擇,這就是fastcgi。 fastcgi是基于cgi架構的擴展,他的核心思想就是在web server和具體cgi程序之間建立一個智能的可持續的中間層,統管cgi程序的運行,這樣web server只需要將請求提交給這個層,這個層再派生出幾個可復用的cgi程序實例,然后再把請求分發給這些實例,這些實例是可控的,可持續,可復用的, 因此一方面避免了進程反復fork,另一方面又可以通過中間層的控制和探測機制來監視這些實例的運行情況,根據不同的狀況fork或者回收實例,達到靈活 性和穩定性兼得的目的。


本人曾經做過測試,使用cgi方式運行php效率最差,mod_php方式性能非常不錯,幾乎是cgi方 式的50倍,但是無法保證虛擬主機站點的安全性隔離,而fastcgi性能則基本和mod_php相當,這還是在使用了suexec切換虛擬主機站點運行 用戶的情況下的結果。

 

fastcgi與cgi的區別

先講下cgi:
cgi在2000年或更早的時候用得比較多, 以前web服務器一般只處理靜態的請求,如果碰到一個動態請求怎么辦呢?web服務器會把根據這次請求的內容,然后會fork一個新進程運行外部c程序 (或perl腳本...), 這個進程會把處理完的數據返回給web服務器,最后web服務器把內容發送給用戶,剛才fork的進程也隨之退出。 如果下次用戶還請求改動態腳本,那么web服務器又再次fork一個新進程,周而復始的進行。

后來出現了一種更高級的方式是, web服務器可以內置perl解釋器或php解釋器。 也就是說這些解釋器做成模塊的方式,web服務器會在啟動的時候就啟動這些解釋器。 當有新的動態請求進來時,web服務器就是自己解析這些perl或php腳本,省得重新fork一個進程,效率提高了。

fastcgi的方式是,web服務器收到一個請求時,他不會重新fork一個進程(因為這個進程在web服務器啟動時就開啟了,而且不會退 出),web服務器直接把內容傳遞給這個進程(進程間通信,但fastcgi使用了別的方式,tcp方式通信),這個進程收到請求后進行處理,把結果返回 給web服務器,最后自己接著等待下一個請求的到來,而不是退出。
fastcgi跟cgi的區別是:
                  在web服務器方面                                                         在對數據進行處理的進程方面
cgi         fork一個新的進程進行處理                                           讀取參數,處理數據,然后就結束生命期
fastcgi   用tcp方式跟遠程機子上的進程或本地進程建立連接       要開啟tcp端口,進入循環,等待數據的到來,處理數據


舉個例子: 服務端現在有個10萬個字單詞, 客戶每次會發來一個字符串,問以這個字符串為前綴的單詞有多少個。 那么可以寫一個程序,這個程序會建一棵trie樹,然后每次用戶請求過來時可以直接到這個trie去查找。 但是如果以cgi的方式的話,這次請求結束后這課trie也就沒了,等下次再啟動該進程時,又要新建一棵trie樹,這樣的效率就太低下了。   而用fastcgi的方式的話,這課trie樹在進程啟動時建立,以后就可以直接在trie樹上查詢指定的前綴了。

[問1]
我也是 c cgi 的堅定支持者,而且親自試驗過 FastCGI 的穩定性和高性能。但是很長時間我也沒查明白:為什么現在使用 cgi 的網站那么少,FastCGI 更少了?

[答1]
你這個問題問的非常好,
都知道 CGI 只是個技術標準(目前使用的是 CGI/1.1), 因為該標準非常簡單所有它很容易用各種高級語言和腳本語言進行描述; 但它也給 CGI 開發者帶來了困難, 那就是過去沒有非常好的開發工具以開發方便開發者開發復雜的應用. 很多時候它們不得不手工 printf 輸入每一句 html 語句. 這樣嚴重限制了傳統 cgi 的發展;

與此同時, 另一批工具(暫時稱之為泛 CGI吧), 如 asp, jsp, php, 它們繼承了 CGI 標準的簡單性, 同時提供了相應的解釋或編譯工具. 通過這些工具, 開發人員只要在 html/xml 模板文件中嵌入相應(腳本)語句即可, 特別是 asp.net 開發環境, php 之后的模板技術等, jsp 等 strust 框架等都為開發人員提供了更為抽象化的開發工具, 使開發人員徹底忘記了它們(asp, php, jsp等)的前身 CGI (之所以稱它們為泛 CGI, 因為它們都是 CGI 技術的繼承和發展者).

[問3]
php的性能是因為成了服務器的模塊,但是 c cgi 也能編寫成模塊的模式,特別是 FastCGI 天生幾乎就是服務器的模塊,可是為什么用的人那么少呢?
而且我自己的試驗證明,FastCGI 極穩定,不穩定基本是程序沒編寫好,有內存泄露、忘記重置等問題造成的.


[答3]
PHP 也可以作為 CGI 運行, 同時也支持 FastCGI.
php 性能是因為成了服務器的模塊, 這導致 php 非常依賴服務器, 所以通常 php 只在 apahce 服務器具有非常好的性能, 換個 webserver 甚至它是不能運行的. 嚴格遵守 CGI 標準的應用工具應該是不存在這些問題的.
不過, 在適當的應用中, 為了性能犧牲一些特性為是必要的.

對 FastCGI 要有充分的信心, FastCGI 沒有問題, 在很多應用中證明它都有很好的表現.
前面提及, 用的少主要原因是在 CSP/eybuild 之前大家沒有很好的編寫復雜應用的 CGI 開發工具.

[問4]
實際應用上,多數人會選擇 apache 或 IIS ...

[答4]
WEB 服務應用領域是主要用這兩個服務器, 不過其它 web 應用(如設備管理/控制等), 使用的 webserver 就很廣泛了, 如 thttpd, mini-httpd, goAhead, lighttpd, boa, ...
它們可能還要運行在不同的 CPU 架構(如 inter, xscale, arm, mips, ...)下, 不同的存儲器限定環境中(如只有 2M, 8M, 16M的內存) 無硬盤, 只有幾M的 flash 等,
這些環境的應用中, 目前最主要的 web 開發語言都是 c, ...

[問5]
我認為隨著ajax應用的普及,模板技術有逐漸被取代的趨勢

[答5]
ajax 是一種非常不錯客戶端技術, 通在不刷新整個頁面的情況下給用戶帶來很新體驗. 它服務器端的技術互相補充相互依賴, 從目前的形式看, 還很難說誰會取代誰的趨勢. 根據項目和應用不同, 開發者應該靈活選擇它們要選用的開發工具和開發技術, 并進一有效的融合, 不宜單純一味追求某一技術.

[問6]
web標準客戶端的結構、表現、行為分離,確實是好框架,是發展趨勢,而且能簡化服務器端開發。我認為隨著應用的普及,模板技術會被取代。那時候,開發服務端只要編程就可以了,完全脫離頁面的束縛。

[答6]
呵呵, W3C 關于 結構、表現、行為分離 確實極大地推動了 web 技術的發展,
但它主要是指結構-(html)、表現(css)、行為(js) 三者的分離, 是一種客戶端技術, 與取代模板關系不大.
一般認為 ajax 的目標把富客戶端, 弱服務器, 它可能對 服務器端的模板技術有一對沖擊.


1,2 C/C++本身的模板技術已經足夠了。 論壇里面我寫過一個模板能滿足99%的cgi開發
而java的一些框架和技術,是其他產品無法或者難以替代的
3,4 錯誤,php比c cgi更適應各種平臺。什么情況會只有2m內存,硬盤? 也只能適合嵌入式了
5.6 ajax 技術不能代替任何現有的,對google的盲目崇拜而已。ajax被用在很多不適合的地方, 大多又都帶來加大服務器消耗的代價

使用FastCGI只會愈來愈少。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
午夜剧场成人观在线视频免费观看| 国产日韩视频在线观看| 国产精品九九九| 91国产精品电影| 欧美成人免费全部观看天天性色| 国产精品美女呻吟| 国产91精品在线播放| 欧美最顶级的aⅴ艳星| 色悠悠国产精品| 久久精品免费电影| 一本大道香蕉久在线播放29| 亚洲xxx视频| 欧美日韩国产精品专区| 欧美激情在线狂野欧美精品| 韩国福利视频一区| 91av视频导航| 成人午夜在线视频一区| 欧美www在线| 国产97人人超碰caoprom| 伊人亚洲福利一区二区三区| 亚洲一区亚洲二区亚洲三区| 午夜精品在线视频| 国产婷婷97碰碰久久人人蜜臀| 日韩精品一区二区视频| 91色琪琪电影亚洲精品久久| 热门国产精品亚洲第一区在线| 久久综合电影一区| 亚洲人成五月天| 97视频免费观看| 成人午夜激情网| 国产精品青草久久久久福利99| 欧美激情伊人电影| 日韩在线观看免费全集电视剧网站| 欧美多人乱p欧美4p久久| 97免费视频在线| 91久久精品国产91性色| 亚洲男人天堂2024| 日韩欧美在线观看视频| 欧美极品少妇与黑人| 92看片淫黄大片看国产片| 91精品啪aⅴ在线观看国产| 国产成人精品视| 在线观看精品自拍私拍| 午夜精品久久久久久久99热浪潮| 秋霞成人午夜鲁丝一区二区三区| 国产精品99免视看9| 伊人久久久久久久久久| 久久777国产线看观看精品| 日韩精品视频在线观看网址| 国产精品一区二区3区| 91精品在线播放| 亚洲欧美国产一区二区三区| 国产91亚洲精品| 亚洲伊人成综合成人网| 国产九九精品视频| 国产精品福利网站| 国产一区二区三区三区在线观看| 91精品国产91久久久久久不卡| 色婷婷成人综合| 日韩国产精品视频| 狠狠干狠狠久久| 欧美在线日韩在线| 欧美大学生性色视频| 精品国产乱码久久久久久天美| 亚洲国产精品99| 一区二区三区精品99久久| 久久91超碰青草是什么| 精品丝袜一区二区三区| 国产精品午夜国产小视频| 久久久这里只有精品视频| 亚洲成色www8888| 日韩中文字幕国产| 国产成人精品日本亚洲| 久热99视频在线观看| 91在线观看欧美日韩| 欧美电影免费观看高清| 欧美xxxx做受欧美.88| 一本色道久久88综合日韩精品| 精品无人区乱码1区2区3区在线| 亚洲人成在线免费观看| 亚洲精品999| 热99精品里视频精品| 午夜欧美大片免费观看| 亚洲精品一区二区网址| 日韩av成人在线观看| 97视频免费观看| 亚洲欧美变态国产另类| 亚洲自拍偷拍一区| 日韩在线视频免费观看| 青草青草久热精品视频在线网站| 久青草国产97香蕉在线视频| 久久精品国产99国产精品澳门| 欧美精品成人91久久久久久久| 欧美午夜www高清视频| 日韩精品在线播放| 亚洲欧洲在线视频| 日韩一区二区三区在线播放| 国产成人av在线播放| 91性高湖久久久久久久久_久久99| 91在线无精精品一区二区| 亚洲激情视频在线播放| 97在线观看视频国产| 精品久久久一区| 欧美日韩黄色大片| 亚洲第一区第一页| 97视频人免费观看| 在线看国产精品| 日韩电影在线观看免费| 92国产精品视频| 欧美成人午夜激情视频| 国产不卡在线观看| 久久久在线免费观看| 色av中文字幕一区| 91精品久久久久久久久久久久久久| 亚洲欧美国产一本综合首页| 这里只有视频精品| 国产精品老牛影院在线观看| 草民午夜欧美限制a级福利片| 国产精品视频久久久| 国产精品专区第二| 亚洲成av人影院在线观看| 蜜月aⅴ免费一区二区三区| 久久久久久69| xxxx性欧美| 欧美国产欧美亚洲国产日韩mv天天看完整| 日韩美女主播视频| 亚洲影院色在线观看免费| 亚洲香蕉成视频在线观看| 国产精品日韩在线观看| 欧美另类69精品久久久久9999| 人人澡人人澡人人看欧美| 亚洲国产高清高潮精品美女| 国产精品极品美女粉嫩高清在线| 欧美激情精品久久久久久久变态| 国产精品18久久久久久麻辣| 成人黄色生活片| 欧美电影免费观看高清完整| 中文综合在线观看| 亚洲国产毛片完整版| 国产999精品久久久影片官网| 亚洲影影院av| 国产精品久久久91| 日韩欧美在线视频免费观看| 亚洲天堂男人的天堂| 亚洲欧美一区二区三区四区| 国产精品美女久久久久久免费| 成人网中文字幕| 国产精品久久久久久久久久三级| 日本aⅴ大伊香蕉精品视频| 亚洲午夜精品久久久久久性色| 91成人福利在线| 欧美在线亚洲在线| 2019中文字幕在线观看| 欧美性视频精品| 国产精品美女视频网站| 国产精品视频免费观看www| 九色精品美女在线| 亚洲人成啪啪网站| 亚洲最大的免费| 成人av.网址在线网站| 亚洲欧美www| 亚洲最大福利视频| 国产精品三级在线| 在线亚洲男人天堂|