http server原理,nginx與php之間是如何工作的

原文 http://blog.100dos.com/http-server-how-nginx-php-work/

Nginx (“engine x”) 是一個(gè)高性能的 HTTP 和 反向代理 服務(wù)器,也是一個(gè) IMAP/POP3/SMTP 代理服務(wù)器憋他。 Nginx 是由 Igor Sysoev 為俄羅斯訪問(wèn)量第二的 Rambler.ru 站點(diǎn)開(kāi)發(fā)的进陡,第一個(gè)公開(kāi)版本0.1.0發(fā)布于2004年10月4日。其將源代碼以類BSD許可證的形式發(fā)布萝衩,因它的穩(wěn)定性回挽、豐富的功能集、示例配置文件和低系統(tǒng)資源的消耗而聞名猩谊∏— 百度百科

當(dāng)nginx接收到一個(gè)http請(qǐng)求時(shí),通過(guò)配置文件找到對(duì)應(yīng)的server牌捷。然后匹配server中的所有l(wèi)ocation墙牌,找到最匹配的涡驮。而在location中的命令會(huì)啟動(dòng)不同的模塊去完成工作,比如rewrite模塊喜滨、index模塊捉捅。因此在nginx中模塊可以看作真正的勞動(dòng)工作者。nginx的模塊是被編譯到nginx中的虽风,屬于靜態(tài)方式棒口。啟動(dòng)nginx時(shí),模塊被自動(dòng)加載辜膝。不像apache无牵,把模塊單獨(dú)編譯成so文件,在配置文件中指定是否加載内舟。所以合敦,單比模塊加載方面,nginx也比apache速度上有提升验游。

那nginx是怎么調(diào)用php的呢充岛?先看下面的nginx中關(guān)于php的配置

location ~ \.php$ {
            root           /webpath;
            fastcgi_pass   127.0.0.1:9000;
            …
            ...
        }

這個(gè)location指令把以php為文件后綴的請(qǐng)求,交給127.0.0.1:9000處理耕蝉。我想你看到這個(gè)應(yīng)該猜到了崔梗,這是一個(gè)C/S架構(gòu)東西。 而這里的IP地址和端口(127.0.0.1:9000)就是fastcgi進(jìn)程監(jiān)聽(tīng)的IP地址和端口垒在。fastcgi是一個(gè)可伸縮地蒜魄、高速地在http server和動(dòng)態(tài)腳本語(yǔ)言間通信的接口。多數(shù)流行的http server都支持fastcgi场躯,包括apache谈为、nginx和lighttpd等。同時(shí)踢关,fastcgi也被許多腳本語(yǔ)言支持伞鲫,其中就有php。

那這個(gè)fastcgi的配置IP和端口從何而來(lái)呢签舞?在php-fpm.conf中可以看到如下:

listen = 127.0.0.1:9000  #這個(gè)表示php的fastcgi進(jìn)程監(jiān)聽(tīng)的ip地址以及端口

pm.start_servers = 2

php-fpm作為fastcgi的進(jìn)程管理器秕脓,可以有效控制內(nèi)存和進(jìn)程,并且平滑重載php配置儒搭。php5.3以后吠架,php-fpm被集成到php的core中,默認(rèn)安裝搂鲫,無(wú)須配置傍药。

fastcgi進(jìn)程管理器php-fpm自身初始化,啟動(dòng)主進(jìn)程php-fpm和啟動(dòng)start_servers個(gè)fastcgi子進(jìn)程。主進(jìn)程php-fpm主要是管理fastcgi子進(jìn)程怔檩,監(jiān)聽(tīng)9000端口褪秀,fastcgi子進(jìn)程等待請(qǐng)求。當(dāng)客戶端請(qǐng)求到達(dá)nginx時(shí)薛训,nginx通過(guò)location指令媒吗,將所有以php為后綴的文件都交給 127.0.0.1:9000 來(lái)處理。php-fpm選擇并連接到一個(gè)fastcgi子進(jìn)程乙埃,并將環(huán)境變量和標(biāo)準(zhǔn)輸入發(fā)送到fastcgi子進(jìn)程闸英。fastcgi子進(jìn)程完成處理后將標(biāo)準(zhǔn)輸出和錯(cuò)誤信息返回。當(dāng)fastcgi子進(jìn)程關(guān)閉連接時(shí)介袜,請(qǐng)求便告處理完成甫何,等待下次處理。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末遇伞,一起剝皮案震驚了整個(gè)濱河市辙喂,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌鸠珠,老刑警劉巖巍耗,帶你破解...
    沈念sama閱讀 210,978評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異渐排,居然都是意外死亡炬太,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門驯耻,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)亲族,“玉大人,你說(shuō)我怎么就攤上這事可缚■龋” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 156,623評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵帘靡,是天一觀的道長(zhǎng)知给。 經(jīng)常有香客問(wèn)我,道長(zhǎng)测柠,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 56,324評(píng)論 1 282
  • 正文 為了忘掉前任缘滥,我火速辦了婚禮轰胁,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘朝扼。我一直安慰自己赃阀,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著榛斯,像睡著了一般观游。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上驮俗,一...
    開(kāi)封第一講書人閱讀 49,741評(píng)論 1 289
  • 那天懂缕,我揣著相機(jī)與錄音,去河邊找鬼王凑。 笑死搪柑,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的索烹。 我是一名探鬼主播工碾,決...
    沈念sama閱讀 38,892評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼百姓!你這毒婦竟也來(lái)了渊额?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 37,655評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤垒拢,失蹤者是張志新(化名)和其女友劉穎旬迹,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體子库,經(jīng)...
    沈念sama閱讀 44,104評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡舱权,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了仑嗅。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片宴倍。...
    茶點(diǎn)故事閱讀 38,569評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖仓技,靈堂內(nèi)的尸體忽然破棺而出鸵贬,到底是詐尸還是另有隱情,我是刑警寧澤脖捻,帶...
    沈念sama閱讀 34,254評(píng)論 4 328
  • 正文 年R本政府宣布阔逼,位于F島的核電站,受9級(jí)特大地震影響地沮,放射性物質(zhì)發(fā)生泄漏嗜浮。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評(píng)論 3 312
  • 文/蒙蒙 一摩疑、第九天 我趴在偏房一處隱蔽的房頂上張望危融。 院中可真熱鬧,春花似錦雷袋、人聲如沸吉殃。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,725評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)蛋勺。三九已至瓦灶,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間抱完,已是汗流浹背贼陶。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,950評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留乾蛤,地道東北人每界。 一個(gè)月前我還...
    沈念sama閱讀 46,260評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像家卖,于是被迫代替她去往敵國(guó)和親眨层。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 1. Nginx的模塊與工作原理 Nginx由內(nèi)核和模塊組成上荡,其中趴樱,內(nèi)核的設(shè)計(jì)非常微小和簡(jiǎn)潔,完成的工作也非常簡(jiǎn)單...
    rosekissyou閱讀 10,200評(píng)論 5 124
  • Nginx的工作原理 1.Nginx的模塊與工作原理 Nginx由內(nèi)核和模塊組成酪捡,其中叁征,內(nèi)核的設(shè)計(jì)非常微小和簡(jiǎn)潔,...
    架構(gòu)飛毛腿閱讀 6,001評(píng)論 1 27
  • Nginx簡(jiǎn)介 解決基于進(jìn)程模型產(chǎn)生的C10K問(wèn)題,請(qǐng)求時(shí)即使無(wú)狀態(tài)連接如web服務(wù)都無(wú)法達(dá)到并發(fā)響應(yīng)量級(jí)一萬(wàn)的現(xiàn)...
    魏鎮(zhèn)坪閱讀 1,993評(píng)論 0 9
  • 一、什么是 FastCGI FastCGI是一個(gè)可伸縮地永罚、高速地在HTTP server和動(dòng)態(tài)腳本語(yǔ)言間通信的接口...
    像敏銳的狗閱讀 1,258評(píng)論 0 2
  • 第一章 Nginx簡(jiǎn)介 Nginx是什么 沒(méi)有聽(tīng)過(guò)Nginx啤呼?那么一定聽(tīng)過(guò)它的“同行”Apache吧!Ngi...
    JokerW閱讀 32,646評(píng)論 24 1,002