亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 4855 | 回復(fù): 14
打印 上一主題 下一主題

請教 modcgi modperl fastcgi 運(yùn)行原理 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2009-09-17 12:04 |只看該作者 |倒序瀏覽
很多文章介紹  modcgi modperl fastcgi 但是都只簡單提到 跟cgi的比較 不用每次打開一個進(jìn)程 具體的原理都說的很含糊

希望哪位能給糾正一下理解上的錯誤

我現(xiàn)在的理解如下

原理:
  1. modcgi 使用 registry 方式  相比cgi減少每次 引導(dǎo)和編譯的開銷
  2. modperl 使用 handler 方式 底層是xs的 所以 比 modcgi更快

    apache喚醒 modcgi 和 modperl的方式是基本一樣的

    客戶1 -> 創(chuàng)建httpd進(jìn)程 -> modcgi or modperl) -> httpd 掛起
    客戶2 -> 喚醒 客戶1產(chǎn)生的 httpd + mod(cgi perl) -> httpd 掛起
   
  3. fastcgi是個進(jìn)程池
  
      客戶1 -> httpd 進(jìn)程池  
                                          -> 有http進(jìn)程-> 處理cgi -> httpd 掛起
      客戶2 -> httpd 進(jìn)程池


使用:
   1. modcgi 就是普通的cgi加上 ModPerl::Registry 或 ModPerl:erlRun   (cgi程序要避免閉包等問題)
      http.conf 的設(shè)置 使用
        PerlResponseHandler ModPerl::Registry
      
   2. modperl 一般使用模板 catalsyt mason 等 或者自己實現(xiàn)
       http.conf 的設(shè)置 使用
          catalsyt :PerlResponseHandler mysite
          mason  : PerlHandler  HTML::Mason::ApacheHandler
          自己實現(xiàn) :PerlResponseHandler Apache2::mysite  

   3. FCGI::Engine 等

論壇徽章:
0
2 [報告]
發(fā)表于 2009-09-18 08:30 |只看該作者
fastcgi 應(yīng)該是基于線程的吧

論壇徽章:
0
3 [報告]
發(fā)表于 2009-09-18 09:40 |只看該作者
原帖由 hotsnow 于 2009-9-18 08:30 發(fā)表
fastcgi 應(yīng)該是基于線程的吧


請您不要誤導(dǎo)我


  1. FastCGI 應(yīng)用程序?qū)⑻幚?HTTP 請求,每個應(yīng)用程序都由進(jìn)程池集合組成。在池中,每個進(jìn)程一次處理一個請求,處理完畢后返回池中,直至其收到另一個請求。
復(fù)制代碼


出處  http://technet.microsoft.com/zh- ... 072%28WS.10%29.aspx

論壇徽章:
0
4 [報告]
發(fā)表于 2009-09-18 12:06 |只看該作者
perl的fastcgi實現(xiàn)較差,我看過一個別人的代碼,就是一個永久循環(huán)駐留在apache進(jìn)程里。
modperl與cgi相比,其實也只是節(jié)省了perl腳本Load和compile的開銷。
當(dāng)然,modperl的handler可以直接訪問apache的內(nèi)部API,效率比CGI高,也可以做一些CGI不能做的事,例如rewrite請求。

論壇徽章:
0
5 [報告]
發(fā)表于 2009-09-18 12:19 |只看該作者
原帖由 蘭花仙子 于 2009-9-18 12:06 發(fā)表
其實也只是節(jié)省了perl腳本Load和compile的開銷。


能展開詳細(xì)講講 怎么節(jié)省的開銷嗎?

尤其是compile的開銷怎么節(jié)省的

[ 本帖最后由 hitsubunnu 于 2009-9-18 12:20 編輯 ]

論壇徽章:
0
6 [報告]
發(fā)表于 2009-09-18 12:23 |只看該作者
原帖由 hitsubunnu 于 2009-9-18 12:19 發(fā)表


能展開詳細(xì)講講 怎么節(jié)省的開銷嗎?

尤其是compile的開銷怎么節(jié)省的


modperl只會load腳本一次,然后compile一次,就常駐內(nèi)存運(yùn)行,類似于一個daemon,直到這個進(jìn)程退出。
CGI在每次request過來時,都會從磁盤load腳本并compile。
modperl相對于CGI,節(jié)省了每次編譯的開銷。我說的是這個意思。

論壇徽章:
0
7 [報告]
發(fā)表于 2009-09-18 13:01 |只看該作者

  1. 1. modcgi 就是使用 registry 方式的modperl
  2. 2. modperl 就是使用 handler 方式 的modperl  

  3.     apache喚醒 modcgi 和 modperl的方式是基本一樣的  但是 handler 方式 底層是xs的 所以 比  registry 方式更快

復(fù)制代碼


可以這樣理解嗎?

論壇徽章:
0
8 [報告]
發(fā)表于 2009-09-18 13:55 |只看該作者
原帖由 hitsubunnu 于 2009-9-18 13:01 發(fā)表

1. modcgi 就是使用 registry 方式的modperl
2. modperl 就是使用 handler 方式 的modperl  

    apache喚醒 modcgi 和 modperl的方式是基本一樣的  但是 handler 方式 底層是xs的 所以 比  registry 方 ...


sorry,我search了下CPAN,沒發(fā)現(xiàn)modcgi呀。。。
你是指Apache的mod_cgi?還是就是指CGI?

CGI與modperl Registry在實現(xiàn)方式上沒什么區(qū)別,因為Registry本就是用來跑CGI的。
CGI與標(biāo)準(zhǔn)mod_perl最大的區(qū)別在于執(zhí)行的HTTP階段不同。
mod_perl可以執(zhí)行在HTTP的任何階段(一個請求處理可以分成N個階段)。
但是到CGI時,已經(jīng)很晚了。而且給CGI傳參是通過環(huán)境變量的方式,比較低效。

論壇徽章:
0
9 [報告]
發(fā)表于 2009-09-18 16:33 |只看該作者
不好意思 我就是因為看的資料很雜 我自己拼接在一起的 所以對modperl的運(yùn)行機(jī)制很混亂才發(fā)問的

蘭花仙子的意思可以理解為下面這樣嗎?
   雖然我在http.conf 里 配置成了 PerlResponseHandler ModPerl::Registry這種形式  但是我在寫程序時仍使用use CGI模塊等寫出的程序  其實質(zhì)就是最原始的cgi程序 不會對 Load和compile的開銷起任何作用

我的理解(勞煩您糾正)
modperl最常見的有2種形態(tài):handler和registry

1. 我以為很多地方提到的modcgi就是指  運(yùn)行在 modperl的registry形式下的 用use CGI模塊等寫出的程序  http.conf 的設(shè)置時 使用 PerlResponseHandler ModPerl::Registry  寫法上跟普通cgi基本一樣但是需要避免一些閉包等等。。  這種形式跟最原始的cgi是有區(qū)別的 也是可以節(jié)省了perl腳本Load和compile的開銷    一般原始cgi要想移植到modperl下 都采用這種模式

2. handler是比registry更高級的一個層次 是利用apache的底層進(jìn)行開發(fā) 可以在http的12階段實現(xiàn)任何事情但是很復(fù)雜  一般都是使用 catalyst mason 等  在http.conf里設(shè)置成 PerlHandler  HTML::Mason::ApacheHandler
這種形式     當(dāng)然也可以自己編寫 類似 Apache2::Hello 但是自己編寫比較麻煩

如果您看不懂我的表述 或者我的理解有很大的偏差 請幫忙回答2個問題
  1. 最原始的cgi要想 移植到 modperl下 是通過 ModPerl::Registry  嗎 當(dāng)然要按照規(guī)范寫   這種移植性能上有提升嗎?
  2.registry 和 handler 的區(qū)別 ?

[ 本帖最后由 hitsubunnu 于 2009-9-18 16:35 編輯 ]

論壇徽章:
0
10 [報告]
發(fā)表于 2009-09-18 16:51 |只看該作者
apache那么復(fù)雜的配置,搞懂它都不容易。

直接使用lighttpd + fastcgi,我覺得又簡單又方便,功能和功能都能滿足要求。
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP