Apache有什么功能特點(diǎn)?可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
創(chuàng)新互聯(lián)是一家專業(yè)的成都網(wǎng)站建設(shè)公司,我們專注成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、網(wǎng)絡(luò)營銷、企業(yè)網(wǎng)站建設(shè),買鏈接,一元廣告為企業(yè)客戶提供一站式建站解決方案,能帶給客戶新的互聯(lián)網(wǎng)理念。從網(wǎng)站結(jié)構(gòu)的規(guī)劃UI設(shè)計(jì)到用戶體驗(yàn)提高,創(chuàng)新互聯(lián)力求做到盡善盡美。
Apache是一款Web服務(wù)器軟件,有多種產(chǎn)品,可以支持SSL技術(shù),支持多個(gè)虛擬主機(jī)。它快速、可靠并且可通過簡單的API擴(kuò)充,將Perl/Python等解釋器編譯到服務(wù)器中。
Apache的特點(diǎn)是簡單、速度快、性能穩(wěn)定,并可做代理服務(wù)器來使用。它可以在大多數(shù)計(jì)算機(jī)操作系統(tǒng)中運(yùn)行,由于其跨平臺(tái)和安全性被廣泛使用。
1.支持動(dòng)態(tài)加載和卸載模塊
就是類似熱拔插一樣的功能,可以實(shí)現(xiàn)不重啟服務(wù)的情況加載和卸載模塊并使其生效。
2.支持多路處理模塊MPM
Apache可以有三種(處理)工作模式,分別為:
prefork---多進(jìn)程I/O模型,一個(gè)進(jìn)程處理一個(gè)請(qǐng)求,是Apache的默認(rèn)工作模式
該工作模式下存在一個(gè)主進(jìn)程和多個(gè)子進(jìn)程,那些個(gè)子進(jìn)程由主進(jìn)程生成和回收。主進(jìn)程負(fù)責(zé)生成套接字、管理子進(jìn)程,但是不負(fù)責(zé)處理請(qǐng)求,主進(jìn)程由root身份執(zhí)行;
子進(jìn)程才是真正負(fù)責(zé)處理請(qǐng)求的角色,一開始會(huì)有多個(gè)空閑子進(jìn)程等待處理請(qǐng)求,一個(gè)子進(jìn)程處理一個(gè)請(qǐng)求,子進(jìn)程由apache用戶執(zhí)行。
worker----復(fù)用多進(jìn)程I/O模型
該工作模式下,存在一個(gè)主進(jìn)程,同樣地主進(jìn)程負(fù)責(zé)管理子進(jìn)程,并不處理請(qǐng)求,主進(jìn)程生成多個(gè)子進(jìn)程,同時(shí)每個(gè)子進(jìn)程生成多個(gè)線程,一個(gè)線程處理一個(gè)請(qǐng)求,這樣假設(shè)子進(jìn)程數(shù)為M,每個(gè)子進(jìn)程的線程數(shù)為N,則此工作模式可以并發(fā)處理M*N個(gè)請(qǐng)求。該模式下占用內(nèi)存小,多用于大型網(wǎng)站。
event-----事件驅(qū)動(dòng)模型
event和worker工作類似,都是并發(fā)處理M*N個(gè)請(qǐng)求。但是event做出的改進(jìn)是,每個(gè)子進(jìn)程中對(duì)線程劃分的更加詳細(xì),有管理線程和服務(wù)線程兩種,為什么要這樣設(shè)計(jì)呢。
我們知道HTTP1.1版本默認(rèn)為持久連接keepalive,如果建立連接卻沒有發(fā)送請(qǐng)求,就會(huì)一直占用此連接的帶寬直到規(guī)定時(shí)間才會(huì)釋放,因此加入了管理進(jìn)程,專門監(jiān)視keepalive類型的服務(wù)線程,當(dāng)發(fā)生真正的請(qǐng)求的時(shí)候,管理線程把請(qǐng)求轉(zhuǎn)交給服務(wù)線程處理,處理完畢后管理線程會(huì)釋放服務(wù)線程的資源。增加了帶寬的利用率。
3.高度模塊化
Apache支持把更多的功能以模塊化的形式存在,通過加載和卸載模塊完成不同功能的增加和刪除,類似于Linux內(nèi)核的模塊化,可以加載和卸載內(nèi)核的驅(qū)動(dòng)模塊。構(gòu)成了core+modules模型;
4.虛擬主機(jī)
有些網(wǎng)站的訪問量低的可憐,這么低的訪問量如果專門用一臺(tái)服務(wù)器來搭建的話,實(shí)在是劃不來,因此就想到了在一臺(tái)服務(wù)器上搭建多個(gè)網(wǎng)站,多個(gè)網(wǎng)站共用一臺(tái)服務(wù)器降低資源消耗,這樣的功能就叫做虛擬主機(jī)功能。
一個(gè)服務(wù)器搭建多個(gè)網(wǎng)站,每個(gè)網(wǎng)站對(duì)應(yīng)不同的域名,外部客戶端想要訪問的時(shí)候,DNS會(huì)將這些不同網(wǎng)站的域名解析到同一臺(tái)服務(wù)器,服務(wù)器根據(jù)HTTP請(qǐng)求的首部行中的域名信息,將請(qǐng)求轉(zhuǎn)至對(duì)應(yīng)的目錄資源。
小tips:虛擬主機(jī)和虛擬機(jī)的區(qū)別->虛擬主機(jī)是一臺(tái)主機(jī)上邊部署多個(gè)網(wǎng)站的功能,支撐這么多網(wǎng)站的主機(jī)運(yùn)行的是同一個(gè)操作系統(tǒng);而虛擬機(jī)是一個(gè)系統(tǒng)通過VMware、LVM等技術(shù)虛擬出來的多個(gè)主機(jī),這些虛擬的主機(jī)可以運(yùn)行不同的操作系統(tǒng)。
5.CGI通用網(wǎng)關(guān)接口
支持動(dòng)態(tài)網(wǎng)頁。這樣說會(huì)很晦澀,先來說什么是網(wǎng)關(guān),網(wǎng)關(guān)就是兩個(gè)網(wǎng)段內(nèi)的主機(jī)進(jìn)行通信的交界口,同一網(wǎng)段內(nèi)的主機(jī)通信時(shí)是不需要經(jīng)過網(wǎng)關(guān)的,但是一旦不同網(wǎng)段的主機(jī)進(jìn)行通信,就需要把數(shù)據(jù)先交給網(wǎng)關(guān),讓網(wǎng)關(guān)轉(zhuǎn)交給另一個(gè)網(wǎng)段。
同理再來看CGI,web服務(wù)器只能發(fā)送靜態(tài)頁面,當(dāng)服務(wù)器收到例如index.php的文件請(qǐng)求時(shí),服務(wù)器總不能把index.php發(fā)送出去吧。
因?yàn)檫@是一個(gè)動(dòng)態(tài)文件啊,此時(shí)CGI會(huì)把index.php處理成一種規(guī)定的數(shù)據(jù)格式,然后交給php解釋器執(zhí)行,隨后再把執(zhí)行后的數(shù)據(jù)經(jīng)過CGI處理,最后把結(jié)果由服務(wù)端發(fā)送給客戶端,這里的CGI就是起到了靜態(tài)請(qǐng)求和動(dòng)態(tài)請(qǐng)求的轉(zhuǎn)換接口。
6.支持反向代理
7.可以實(shí)現(xiàn)負(fù)載均衡
8.支持路徑別名
為了不讓用戶知道服務(wù)端資源的真正目錄,可以對(duì)目錄做一個(gè)別名,用戶只需要知道這個(gè)別名即可,別名會(huì)自動(dòng)跳轉(zhuǎn)到真正的目錄。
看完上述內(nèi)容,你們對(duì)Apache的功能特點(diǎn)有進(jìn)一步的了解嗎?如果還想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀。