国产欧美日韩第一页|日本一二三不卡视频|在线精品小视频,亚洲第一免费播放区,metcn人体亚洲一区,亚洲精品午夜视频

Apache端口-進(jìn)程-模塊化-DSO和MPM

2016-02-15 16:45:37 3420

【apche的端口和進(jìn)程】

Apache默認安裝完之后監聽(tīng)的是TCP協(xié)議的80端口,如果是加密的https協(xié)議的話(huà)就是443端口。

我們可以通過(guò)命令  netstat tupln | grep 80 來(lái)查看。

Apache默認會(huì )啟動(dòng)一個(gè)主進(jìn)程(也叫控制進(jìn)程)也多個(gè)子進(jìn)程

我們可以通過(guò)命令 ps aux | grep httpd 來(lái)查看,默認會(huì )啟用多個(gè)子進(jìn)程,

這些進(jìn)程里面有一個(gè)主進(jìn)程,怎么區分呢?

首先,主進(jìn)程由root運行,其它進(jìn)程是由apache用戶(hù)來(lái)運行

其次,因為主進(jìn)程是第一個(gè)啟動(dòng),子進(jìn)程都是由主進(jìn)程來(lái)運行的,所以我們可以通過(guò)

          進(jìn)程的id來(lái)判斷,主進(jìn)程的id是最小的

最后我們也可以通過(guò)查看 /etc/httpd/run/httpd.pid 文件來(lái)查看主進(jìn)程的id

真正處理請求的是子進(jìn)程。



【DSO動(dòng)態(tài)加載】

apache本身是一個(gè)模塊設計的服務(wù),各個(gè)的功能,特性是獨立分開(kāi)的,

這樣設計的好處在于可擴展很強,各個(gè)模塊相互依耐性較低,有利于后期的升級或者添加新功能比較方便

核心只包含主要功能,擴展功能通過(guò)模塊實(shí)現。不同模塊可以被靜態(tài)的編譯進(jìn)程序,也可以動(dòng)態(tài)加載

DSO  動(dòng)態(tài)共享對象,模塊的動(dòng)態(tài)加載就是通過(guò)DSO來(lái)實(shí)現的,動(dòng)態(tài)加載指的是當我們需要新的功能的時(shí)候,

我們把需要的功能編譯出來(lái),通過(guò)配置文件加載進(jìn)apche的服務(wù)當中。不需要重新編譯apahce。

通過(guò)apache的apxs就可以獨立的去編譯的動(dòng)態(tài)模塊,這個(gè)工具是屬于httpd-devel開(kāi)發(fā)相關(guān)的軟件包中的。

可以通過(guò)http -M(httpd -l 查看靜態(tài)模塊) 查看當前都編譯了哪些模塊,其中static為靜態(tài)編譯進(jìn)apache的,shared為動(dòng)態(tài)編譯進(jìn)入的。

DSO的實(shí)現是通過(guò)so_module靜態(tài)模塊實(shí)現的。 mod_so.c是DSO本身的模塊



【MPM 多進(jìn)程模塊】

MPM(Multi Process Modules)

因為apache本身是一個(gè)跨平臺的,但是不同操作系統,對底層網(wǎng)絡(luò )請求的處理,操作系統為我們提供的接口都不同。

如果強行使用一種統一的方式去實(shí)現,就沒(méi)有最大化的利用操作系統的最大優(yōu)勢,所以在不同平臺下使用不同的MPM

其中Linux下有  prefork 和worker     Windows下有 mpm_winnt

Linux下默認的是使用prefork,我們來(lái)分析一些prefork與worker的區別

Prefork (預先生成) 是非線(xiàn)程,預生成進(jìn)程型MPM,prefork會(huì )預先啟動(dòng)一些子進(jìn)程,每個(gè)子進(jìn)程一個(gè)時(shí)間點(diǎn)只能處理一個(gè)請求,并且會(huì )根據并發(fā)請求數量動(dòng)態(tài)生成更多子進(jìn)程。優(yōu)勢是線(xiàn)程安全的

Worker worker是線(xiàn)程化,多進(jìn)程的MPM,每個(gè)進(jìn)程可以生成多個(gè)線(xiàn)程,每個(gè)線(xiàn)程處理一個(gè)請求。優(yōu)勢是不需要啟用多個(gè)子進(jìn)程,這樣可以節約內存,缺點(diǎn)是效率沒(méi)有prefork高。

如果要使用其他的MPM需要重新編譯Apache。





提交成功!非常感謝您的反饋,我們會(huì )繼續努力做到更好!

這條文檔是否有幫助解決問(wèn)題?

非常抱歉未能幫助到您。為了給您提供更好的服務(wù),我們很需要您進(jìn)一步的反饋信息:

在文檔使用中是否遇到以下問(wèn)題:
-->