- 工信部備案號 滇ICP備05000110號-1
- 滇公安備案 滇53010302000111
- 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證 B1.B2-20181647、滇B1.B2-20190004
- 云南互聯(lián)網(wǎng)協(xié)會(huì )理事單位
- 安全聯(lián)盟認證網(wǎng)站身份V標記
- 域名注冊服務(wù)機構許可:滇D3-20230001
- 代理域名注冊服務(wù)機構:新網(wǎng)數碼
【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。
售前咨詢(xún)
售后咨詢(xún)
備案咨詢(xún)
二維碼
TOP