您好,登錄后才能下訂單哦!
Apache有什么功能特點?可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
Apache是一款Web服務器軟件,有多種產品,可以支持SSL技術,支持多個虛擬主機。它快速、可靠并且可通過簡單的API擴充,將Perl/Python等解釋器編譯到服務器中。
Apache的特點是簡單、速度快、性能穩定,并可做代理服務器來使用。它可以在大多數計算機操作系統中運行,由于其跨平臺和安全性被廣泛使用。
1.支持動態加載和卸載模塊
就是類似熱拔插一樣的功能,可以實現不重啟服務的情況加載和卸載模塊并使其生效。
2.支持多路處理模塊MPM
Apache可以有三種(處理)工作模式,分別為:
prefork---多進程I/O模型,一個進程處理一個請求,是Apache的默認工作模式
該工作模式下存在一個主進程和多個子進程,那些個子進程由主進程生成和回收。主進程負責生成套接字、管理子進程,但是不負責處理請求,主進程由root身份執行;
子進程才是真正負責處理請求的角色,一開始會有多個空閑子進程等待處理請求,一個子進程處理一個請求,子進程由apache用戶執行。
worker----復用多進程I/O模型
該工作模式下,存在一個主進程,同樣地主進程負責管理子進程,并不處理請求,主進程生成多個子進程,同時每個子進程生成多個線程,一個線程處理一個請求,這樣假設子進程數為M,每個子進程的線程數為N,則此工作模式可以并發處理M*N個請求。該模式下占用內存小,多用于大型網站。
event-----事件驅動模型
event和worker工作類似,都是并發處理M*N個請求。但是event做出的改進是,每個子進程中對線程劃分的更加詳細,有管理線程和服務線程兩種,為什么要這樣設計呢。
我們知道HTTP1.1版本默認為持久連接keepalive,如果建立連接卻沒有發送請求,就會一直占用此連接的帶寬直到規定時間才會釋放,因此加入了管理進程,專門監視keepalive類型的服務線程,當發生真正的請求的時候,管理線程把請求轉交給服務線程處理,處理完畢后管理線程會釋放服務線程的資源。增加了帶寬的利用率。
3.高度模塊化
Apache支持把更多的功能以模塊化的形式存在,通過加載和卸載模塊完成不同功能的增加和刪除,類似于Linux內核的模塊化,可以加載和卸載內核的驅動模塊。構成了core+modules模型;
4.虛擬主機
有些網站的訪問量低的可憐,這么低的訪問量如果專門用一臺服務器來搭建的話,實在是劃不來,因此就想到了在一臺服務器上搭建多個網站,多個網站共用一臺服務器降低資源消耗,這樣的功能就叫做虛擬主機功能。
一個服務器搭建多個網站,每個網站對應不同的域名,外部客戶端想要訪問的時候,DNS會將這些不同網站的域名解析到同一臺服務器,服務器根據HTTP請求的首部行中的域名信息,將請求轉至對應的目錄資源。
小tips:虛擬主機和虛擬機的區別->虛擬主機是一臺主機上邊部署多個網站的功能,支撐這么多網站的主機運行的是同一個操作系統;而虛擬機是一個系統通過VMware、LVM等技術虛擬出來的多個主機,這些虛擬的主機可以運行不同的操作系統。
5.CGI通用網關接口
支持動態網頁。這樣說會很晦澀,先來說什么是網關,網關就是兩個網段內的主機進行通信的交界口,同一網段內的主機通信時是不需要經過網關的,但是一旦不同網段的主機進行通信,就需要把數據先交給網關,讓網關轉交給另一個網段。
同理再來看CGI,web服務器只能發送靜態頁面,當服務器收到例如index.php的文件請求時,服務器總不能把index.php發送出去吧。
因為這是一個動態文件啊,此時CGI會把index.php處理成一種規定的數據格式,然后交給php解釋器執行,隨后再把執行后的數據經過CGI處理,最后把結果由服務端發送給客戶端,這里的CGI就是起到了靜態請求和動態請求的轉換接口。
6.支持反向代理
7.可以實現負載均衡
8.支持路徑別名
為了不讓用戶知道服務端資源的真正目錄,可以對目錄做一個別名,用戶只需要知道這個別名即可,別名會自動跳轉到真正的目錄。
看完上述內容,你們對Apache的功能特點有進一步的了解嗎?如果還想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。