- 工信部備案號 滇ICP備05000110號-1
- 滇公安備案 滇53010302000111
- 增值電信業(yè)務(wù)經(jīng)營許可證 B1.B2-20181647、滇B1.B2-20190004
- 云南互聯(lián)網(wǎng)協(xié)會理事單位
- 安全聯(lián)盟認(rèn)證網(wǎng)站身份V標(biāo)記
- 域名注冊服務(wù)機(jī)構(gòu)許可:滇D3-20230001
- 代理域名注冊服務(wù)機(jī)構(gòu):新網(wǎng)數(shù)碼
【apche的端口和進(jìn)程】
Apache默認(rèn)安裝完之后監(jiān)聽的是TCP協(xié)議的80端口,如果是加密的https協(xié)議的話就是443端口。
我們可以通過命令 netstat tupln | grep 80 來查看。
Apache默認(rèn)會啟動一個主進(jìn)程(也叫控制進(jìn)程)也多個子進(jìn)程
我們可以通過命令 ps aux | grep httpd 來查看,默認(rèn)會啟用多個子進(jìn)程,
這些進(jìn)程里面有一個主進(jìn)程,怎么區(qū)分呢?
首先,主進(jìn)程由root運(yùn)行,其它進(jìn)程是由apache用戶來運(yùn)行
其次,因?yàn)橹鬟M(jìn)程是第一個啟動,子進(jìn)程都是由主進(jìn)程來運(yùn)行的,所以我們可以通過
進(jìn)程的id來判斷,主進(jìn)程的id是最小的
最后我們也可以通過查看 /etc/httpd/run/httpd.pid 文件來查看主進(jìn)程的id
真正處理請求的是子進(jìn)程。
【DSO動態(tài)加載】
apache本身是一個模塊設(shè)計的服務(wù),各個的功能,特性是獨(dú)立分開的,
這樣設(shè)計的好處在于可擴(kuò)展很強(qiáng),各個模塊相互依耐性較低,有利于后期的升級或者添加新功能比較方便
核心只包含主要功能,擴(kuò)展功能通過模塊實(shí)現(xiàn)。不同模塊可以被靜態(tài)的編譯進(jìn)程序,也可以動態(tài)加載DSO 動態(tài)共享對象,模塊的動態(tài)加載就是通過DSO來實(shí)現(xiàn)的,動態(tài)加載指的是當(dāng)我們需要新的功能的時候,
我們把需要的功能編譯出來,通過配置文件加載進(jìn)apche的服務(wù)當(dāng)中。不需要重新編譯apahce。
通過apache的apxs就可以獨(dú)立的去編譯的動態(tài)模塊,這個工具是屬于httpd-devel開發(fā)相關(guān)的軟件包中的。
可以通過http -M(httpd -l 查看靜態(tài)模塊) 查看當(dāng)前都編譯了哪些模塊,其中static為靜態(tài)編譯進(jìn)apache的,shared為動態(tài)編譯進(jìn)入的。
DSO的實(shí)現(xiàn)是通過so_module靜態(tài)模塊實(shí)現(xiàn)的。 mod_so.c是DSO本身的模塊
【MPM 多進(jìn)程模塊】
MPM(Multi Process Modules)
因?yàn)閍pache本身是一個跨平臺的,但是不同操作系統(tǒng),對底層網(wǎng)絡(luò)請求的處理,操作系統(tǒng)為我們提供的接口都不同。
如果強(qiáng)行使用一種統(tǒng)一的方式去實(shí)現(xiàn),就沒有最大化的利用操作系統(tǒng)的最大優(yōu)勢,所以在不同平臺下使用不同的MPM
其中Linux下有 prefork 和worker Windows下有 mpm_winnt
Linux下默認(rèn)的是使用prefork,我們來分析一些prefork與worker的區(qū)別
Prefork (預(yù)先生成) 是非線程,預(yù)生成進(jìn)程型MPM,prefork會預(yù)先啟動一些子進(jìn)程,每個子進(jìn)程一個時間點(diǎn)只能處理一個請求,并且會根據(jù)并發(fā)請求數(shù)量動態(tài)生成更多子進(jìn)程。優(yōu)勢是線程安全的
Worker worker是線程化,多進(jìn)程的MPM,每個進(jìn)程可以生成多個線程,每個線程處理一個請求。優(yōu)勢是不需要啟用多個子進(jìn)程,這樣可以節(jié)約內(nèi)存,缺點(diǎn)是效率沒有prefork高。
如果要使用其他的MPM需要重新編譯Apache。
提交成功!非常感謝您的反饋,我們會繼續(xù)努力做到更好!
這條文檔是否有幫助解決問題?
售前咨詢
售后咨詢
備案咨詢
二維碼
TOP