日本三级片在线观看视频_西西大胆午夜人体视频无码_少妇无码一区二区_亚洲天堂超碰_极品少妇被猛的白浆直流_91精品云霸高清中文字幕_草草五月天伊人_久久少妇无码专区_欧美激欧美啪啪5老太_日韩在线在线成人

Apache端口-進程-模塊化-DSO和MPM

2016-02-15 16:45:37 10676

【apche的端口和進程】

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

我們可以通過命令  netstat tupln | grep 80 來查看。

Apache默認會啟動一個主進程(也叫控制進程)也多個子進程

我們可以通過命令 ps aux | grep httpd 來查看,默認會啟用多個子進程,

這些進程里面有一個主進程,怎么區(qū)分呢?

首先,主進程由root運行,其它進程是由apache用戶來運行

其次,因為主進程是第一個啟動,子進程都是由主進程來運行的,所以我們可以通過

          進程的id來判斷,主進程的id是最小的

最后我們也可以通過查看 /etc/httpd/run/httpd.pid 文件來查看主進程的id

真正處理請求的是子進程。



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

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

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

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

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

我們把需要的功能編譯出來,通過配置文件加載進apche的服務(wù)當(dāng)中。不需要重新編譯apahce。

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

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

DSO的實現(xiàn)是通過so_module靜態(tài)模塊實現(xiàn)的。 mod_so.c是DSO本身的模塊



【MPM 多進程模塊】

MPM(Multi Process Modules)

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

如果強行使用一種統(tǒng)一的方式去實現(xiàn),就沒有最大化的利用操作系統(tǒng)的最大優(yōu)勢,所以在不同平臺下使用不同的MPM

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

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

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

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

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





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

這條文檔是否有幫助解決問題?

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

在文檔使用中是否遇到以下問題: