青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

FastCGI運(yùn)行模型學(xué)習(xí)總結(jié)

Posted on 2012-01-05 16:58 冷鋒 閱讀(4474) 評(píng)論(1)  編輯 收藏 引用 所屬分類(lèi): linux

FastCGI的工作原理

1、Web Server啟動(dòng)時(shí)載入FastCGI進(jìn)程管理器(IIS ISAPI或Apache Module)

2、FastCGI進(jìn)程管理器自身初始化,啟動(dòng)多個(gè)CGI解釋器進(jìn)程(可見(jiàn)多個(gè)php-cgi)并等待來(lái)自Web Server的連接。

3、當(dāng)客戶(hù)端請(qǐng)求到達(dá)Web Server時(shí),F(xiàn)astCGI進(jìn)程管理器選擇并連接到一個(gè)CGI解釋器。Web server將CGI環(huán)境變量和標(biāo)準(zhǔn)輸入發(fā)送到FastCGI子進(jìn)程php-cgi。

4、FastCGI子進(jìn)程完成處理后將標(biāo)準(zhǔn)輸出和錯(cuò)誤信息從同一連接返回Web Server。當(dāng)FastCGI子進(jìn)程關(guān)閉連接時(shí),請(qǐng)求便告處理完成。FastCGI子進(jìn)程接著等待并處理來(lái)自FastCGI進(jìn)程管理器(運(yùn)行在Web Server中)的下一個(gè)連接。 在CGI模式中,php-cgi在此便退出了。

在上述情況中,你可以想象CGI通常有多慢。每一個(gè)Web請(qǐng)求PHP都必須重新解析php.ini、重新載入全部擴(kuò)展并重初始化全部數(shù)據(jù)結(jié)構(gòu)。使用FastCGI,所有這些都只在進(jìn)程啟動(dòng)時(shí)發(fā)生一次。一個(gè)額外的好處是,持續(xù)數(shù)據(jù)庫(kù)連接(Persistent database connection)可以工作。

 

這個(gè)很容易找到。也容易理解,但是繼續(xù)google之后,發(fā)現(xiàn)自己的概念又模糊了。

比如有些例子用

spawn-fcgi

/usr/local/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 5 -u root -g root -f /usr/bin/php-cgi

 

參數(shù)含義如下

 

  1. -f <fcgiapp> 指定調(diào)用FastCGI的進(jìn)程的執(zhí)行程序位置,根據(jù)系統(tǒng)上所裝的PHP的情況具體設(shè)置
  2. -a <addr> 綁定到地址addr
  3. -p <port> 綁定到端口port
  4. -s <path> 綁定到unix socket的路徑path
  5. -C <childs> 指定產(chǎn)生的FastCGI的進(jìn)程數(shù),默認(rèn)為5(僅用于PHP)
  6. -P <path> 指定產(chǎn)生的進(jìn)程的PID文件路徑
  7. -u和-g FastCGI使用什么身份(-u 用戶(hù) -g 用戶(hù)組)運(yùn)行,Ubuntu下可以使用www-data,其他的根據(jù)情況配置,如nobody、apache等

 

剛看到FastCGI原理的時(shí)候,我想象中的運(yùn)行模型是,前端的反向代理服務(wù)器如Nginx收到請(qǐng)求,然后轉(zhuǎn)發(fā)給cgi進(jìn)程,這個(gè)cgi進(jìn)程有N個(gè),從而實(shí)現(xiàn)并發(fā)處理。但是接下來(lái)搜索到的C語(yǔ)言實(shí)現(xiàn)的FastCGI應(yīng)用的例子好像又把這個(gè)模型給否定了。并且fastcgi是語(yǔ)言無(wú)關(guān)的,難道你要用python寫(xiě)并發(fā)?

#include "fcgi_stdio.h"
#include <stdlib.h>
int count;
void initialize(void)
{
    count=0;
}
void main(void)
{
initialize();
 
while (FCGI_Accept() >= 0)   {
   printf("Content-type: text/html“r“n"
     "“r“n"
     "<title>FastCGI Hello! (C, fcgi_stdio library)</title>"
     "<h1>FastCGI Hello! (C, fcgi_stdio library)</h1>"
     "Request number %d running on host <i>%s</i>“n",
     ++count, getenv("SERVER_HOSTNAME"));
    }
}

這個(gè)代碼看不出來(lái)有任何并發(fā)處理的部分。比如fork什么的。

 

 

另外一種模型就是有一種叫做FastCGI進(jìn)程管理器的進(jìn)程,就像上面說(shuō)的是管理fastcgi進(jìn)程的進(jìn)程,請(qǐng)求轉(zhuǎn)發(fā)到管理器的時(shí)候,由它來(lái)進(jìn)行選擇相應(yīng)的應(yīng)用進(jìn)程,卡就卡在這了,這個(gè)管理器是怎么來(lái)選擇進(jìn)程的啊,假如我有N個(gè)不同邏輯的可執(zhí)行文件,它怎么知道要轉(zhuǎn)發(fā)給哪個(gè)進(jìn)程呢,google到的fastcgi配置都是針對(duì)反向代理的后端也即管理器設(shè)置的,沒(méi)有發(fā)現(xiàn)有針對(duì)不同邏輯發(fā)給不同的應(yīng)用進(jìn)程的部分。

 

繼續(xù)狂搜,還是無(wú)果,都是類(lèi)似的文章。網(wǎng)上搜索不到的問(wèn)題,要么就是很難很偏,要么就是很簡(jiǎn)單,簡(jiǎn)單到不值一提,很顯然,我屬于后者。轉(zhuǎn)換思路,開(kāi)始考慮假如要自己來(lái)實(shí)現(xiàn)這個(gè)功能的話(huà)該怎么辦。一步步地推理,在結(jié)合搜索到的文章,大概理清了思路,我的理解如下,不對(duì)的地方請(qǐng)指正。

 

1.有一個(gè)CGI進(jìn)程管理器,這個(gè)管理器一般是用第3方的fastcgi開(kāi)發(fā)套件,比如上面提到的spawn-fcgi ,用它可以啟動(dòng)指定可執(zhí)行文件的N個(gè)實(shí)例,關(guān)于之前選擇進(jìn)程的疑問(wèn),這里可以得到解釋?zhuān)蔷褪嵌鄠€(gè)進(jìn)程只是同一個(gè)可執(zhí)行文件的實(shí)例,假如你想把不同的模塊分開(kāi)生成可執(zhí)行文件的話(huà)估計(jì)就得再啟動(dòng)多一個(gè)管理器了吧。

 

2.假如你是用python寫(xiě)的fastcgi的應(yīng)用程序,那么當(dāng)你用管理器啟動(dòng)了100個(gè)實(shí)例的時(shí)候,也就相當(dāng)于啟動(dòng)了100個(gè)python解析器,如果是用C等靜態(tài)語(yǔ)言寫(xiě)的話(huà)那還好,只是跟你寫(xiě)的程序大小有關(guān)。

 

可能是沒(méi)有接觸過(guò)CGI程序的原因,讓我對(duì)這基本的模型都糾結(jié)了一下午,希望這篇文章能幫些初學(xué)者。


Feedback

# re: FastCGI運(yùn)行模型學(xué)習(xí)總結(jié)  回復(fù)  更多評(píng)論   

2012-01-06 10:38 by coolypf
為了提高并發(fā)度,_同一_ fastcgi進(jìn)程可以fork多份,
這時(shí)session管理就成了問(wèn)題,apache的mod_fcgi實(shí)現(xiàn)了session affinity,
nginx的話(huà),可以自己用共享內(nèi)存實(shí)現(xiàn),或者用memcached。
覺(jué)得麻煩的話(huà),可以用FastCGI++這個(gè)庫(kù),不必fork也可以有很好的并發(fā)度。

posts - 15, comments - 18, trackbacks - 0, articles - 0

Copyright © 冷鋒

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久久久久久高潮| 欧美丰满高潮xxxx喷水动漫| 国产美女一区二区| 国产精品一区二区久久国产| 国产精品va| 国内一区二区在线视频观看| 激情91久久| 亚洲老司机av| 亚洲欧美国产精品专区久久| 久久久久久色| 亚洲激情视频在线| 一区二区三区黄色| 午夜在线视频一区二区区别| 美女露胸一区二区三区| 欧美日韩色婷婷| 国产原创一区二区| 亚洲久久一区| 亚洲欧美在线视频观看| 欧美成人免费网| 亚洲性线免费观看视频成熟| 久久久久久久波多野高潮日日| 欧美黄色影院| 日韩亚洲视频在线| 在线视频你懂得一区二区三区| 最新日韩欧美| 黄色亚洲在线| 在线看片欧美| 亚洲高清一区二| 99国产一区| 性做久久久久久久免费看| 久久大香伊蕉在人线观看热2| 亚洲综合另类| 久久午夜视频| 国产精品久久久999| 国产亚洲精品一区二555| 日韩午夜av电影| 久久精品最新地址| 亚洲无玛一区| 欧美日韩亚洲一区二区三区在线 | 国产九九精品视频| 亚洲国产一区在线| 久久女同精品一区二区| 亚洲视频一区二区| 欧美精品乱人伦久久久久久 | 99国产精品99久久久久久| 玖玖综合伊人| 在线成人性视频| 久久免费少妇高潮久久精品99| 在线亚洲一区| 欧美天堂在线观看| 一区二区三区鲁丝不卡| 亚洲日本黄色| 欧美绝品在线观看成人午夜影视| 亚洲第一级黄色片| 免费日韩视频| 欧美xx69| 99re这里只有精品6| 亚洲精品国产精品乱码不99按摩 | 国产亚洲美州欧州综合国| 亚洲影院色无极综合| 99精品国产在热久久| 欧美体内谢she精2性欧美| 在线一区二区视频| 99亚洲视频| 国产精品看片你懂得| 亚洲男人av电影| 亚洲午夜激情免费视频| 欧美资源在线| 日韩亚洲一区在线播放| 亚洲黄色av| 欧美激情一区二区三区蜜桃视频| 亚洲电影在线看| 欧美成人一品| 欧美日韩精品在线播放| 亚洲欧美中文日韩v在线观看| 宅男噜噜噜66一区二区| 国产精品视频久久久| 久久国产日韩| 蜜桃视频一区| 亚洲一区二区视频在线| 亚洲尤物在线| 一区二区亚洲| 日韩一区二区精品| 国产一区二区三区四区hd| 亚洲国产成人不卡| 国产精品久久久久av| 快播亚洲色图| 国产精品高清在线| 欧美成人综合| 国产欧美精品一区二区色综合 | 亚洲人精品午夜| 这里只有精品视频| 在线精品一区| 亚洲欧美国产毛片在线| 日韩午夜在线| 久久久www免费人成黑人精品 | 欧美亚洲一区二区在线| 久久久精品午夜少妇| 一本色道久久88亚洲综合88| 午夜日韩激情| 中文精品视频| 久久一日本道色综合久久| 亚洲性线免费观看视频成熟| 久久精品中文字幕一区| 99香蕉国产精品偷在线观看| 欧美一区二区免费视频| 夜夜狂射影院欧美极品| 久久久精品性| 久久国产视频网| 国产精品久久7| 亚洲人成啪啪网站| 亚洲国产日韩欧美一区二区三区| 午夜精品电影| 亚洲在线观看视频网站| 另类图片国产| 久久亚洲综合色| 国产欧美日韩亚州综合| 99亚洲一区二区| 一二美女精品欧洲| 欧美黄色一区| 亚洲国产精品久久精品怡红院| 伊人成年综合电影网| 性刺激综合网| 久久精品91久久香蕉加勒比| 国产精品社区| 亚洲一本大道在线| 亚洲影视在线| 欧美不卡在线视频| 国产精品午夜久久| 亚洲激情成人网| 亚洲黄色尤物视频| 美日韩免费视频| 欧美顶级艳妇交换群宴| 在线日韩成人| 欧美v日韩v国产v| 亚洲高清激情| 一区二区激情| 国产精品成人在线| 亚洲欧美www| 久久人91精品久久久久久不卡| 国内精品一区二区三区| 久久天天躁狠狠躁夜夜av| 欧美sm视频| 一本色道久久综合亚洲二区三区| 欧美午夜电影在线| 亚洲欧美久久| 美女日韩在线中文字幕| 91久久综合亚洲鲁鲁五月天| 欧美区日韩区| 亚洲欧美自拍偷拍| 女人天堂亚洲aⅴ在线观看| 亚洲三级电影在线观看| 欧美日韩中国免费专区在线看| 亚洲一区欧美一区| 久久一区二区三区四区| 亚洲国产成人av| 国产精品国产三级国产a| 欧美一区网站| 亚洲二区在线| 午夜激情综合网| 在线免费观看视频一区| 欧美精品一区二区三区四区 | 久久久在线视频| 亚洲日本免费电影| 欧美性猛交xxxx乱大交蜜桃| 欧美中文字幕在线播放| 亚洲国产精品va在线观看黑人| 一区二区三区四区国产精品| 国产午夜精品全部视频在线播放| 久久精品亚洲精品| 亚洲欧洲日本在线| 久久九九热免费视频| 日韩午夜电影| 在线看片成人| 国产精品亚洲片夜色在线| 麻豆国产精品va在线观看不卡| 一区二区三区国产在线| 欧美成人中文字幕在线| 欧美在线观看视频在线| 在线一区二区视频| 亚洲人www| 亚洲第一区在线观看| 国产日本欧洲亚洲| 欧美三级欧美一级| 欧美不卡视频一区| 久久嫩草精品久久久久| 亚洲欧美另类久久久精品2019| 亚洲国产成人porn| 老牛国产精品一区的观看方式| 性欧美大战久久久久久久免费观看 | 欧美性大战久久久久久久蜜臀| 裸体一区二区| 亚洲欧美激情精品一区二区| 久久综合成人精品亚洲另类欧美| 亚洲裸体俱乐部裸体舞表演av| 欧美成人国产va精品日本一级| 亚洲综合激情| 在线欧美日韩精品| 国内精品国产成人| 国产婷婷成人久久av免费高清|