互聯(lián)網(wǎng)從90年代開始席卷全球,現(xiàn)如今基本上所有業(yè)務(wù)都可以在互聯(lián)網(wǎng)上完成,互聯(lián)網(wǎng)已經(jīng)成為我們生活中不可或缺的一部分。成都網(wǎng)站制作公司
那么互聯(lián)網(wǎng)web協(xié)議是怎樣的呢?可以概括為訪問者從給定的Web站點請求文檔,而DNS和IP系統(tǒng)將該請求轉(zhuǎn)發(fā)到正確的計算機(jī)。這臺托管請求的網(wǎng)頁的計算機(jī)將把網(wǎng)頁提供給訪問者。
網(wǎng)頁本質(zhì)上是HTML文檔。為了能夠向訪問者提供不同的網(wǎng)頁,提供服務(wù)的機(jī)器需要一個服務(wù)器程序。Nginx和Apache就是這個提供服務(wù)的的軟件程序,它們可以處理請求進(jìn)行分析,然后將用戶所需要的文檔信息返回給訪問者。
Nginx與Apache
Nginx和Apache都是非常??流行的Web服務(wù)器。
Apache于1995年首次發(fā)布,Nginx于2004年發(fā)布。
兩者都被全球500強(qiáng)的大型公司使用。
Nginx的市場份額多年來一直在穩(wěn)定增長。
在某些情況下,Nginx在性能方面更具有競爭優(yōu)勢。
Apache
隨著蒂姆伯納斯李創(chuàng)建了html,之后Apache就占據(jù)著web服務(wù)器的主導(dǎo)地位?,F(xiàn)在發(fā)行的linux服務(wù)器,無論是redhat還是ubuntu,apache都是默認(rèn)自帶的服務(wù)器,因此,很多人都是使用Apache來進(jìn)行web開發(fā)的,畢竟人家操作系統(tǒng)已經(jīng)給你提供好了。成都網(wǎng)站建設(shè)公司
apache受歡迎的一個點就是他的.htacess文件配置管理。
Apache使用.htaccess進(jìn)行配置,它為處理傳入請求的方式提供了很大的靈活性。不同的重定向規(guī)則,大上傳文件大小,URL重寫,內(nèi)存限制,目錄保護(hù),header頭信息,cookie,查詢字符串操作。
在服務(wù)器根目錄中,目錄樹中的每個級別或目錄都可以具有自己的.httaccess文件,并具有自己的配置。
對于共享主機(jī)提供商,這是一個夢想,因為他們可以在同一臺計算機(jī)上為數(shù)百個用戶提供一種配置其網(wǎng)站服務(wù)方式的方式,而不會影響其他網(wǎng)站??蛻艨梢栽谑芟薜墓蚕硗泄墉h(huán)境中配置許多詳細(xì)信息,而無需接觸全局服務(wù)器配置。
但是,這種靈活性是以性能為代價的:“無論您實際上是否使用它們,允許.htaccess文件都會導(dǎo)致性能下降!”
每次啟用.htaccess文件時,Apache都必須從請求的URL或文件中遍歷整個目錄樹,直到所有的更高級別,直到服務(wù)器的根目錄,然后針對每個請求加載它們。
apache還有一個受歡迎的點是他的模塊機(jī)制。
Apache便允許用戶安裝模塊,然后根據(jù)需要啟用/禁用它們。
apahce有很多好用的模塊,比如壓縮,加密,日志記錄,重定向到更高級的內(nèi)容,例如使用高級語法編輯請求和響應(yīng),正是有了這些模塊,才讓Apache處理請求更加多樣化。
nginx
Nginx(也稱為nginx或NGINX)是在2004年由俄羅斯開發(fā)人員Igor Sysoev首次公開發(fā)行的。
Nginx是專門為解決Apache Web服務(wù)器的性能限制而編寫的。
Nginx發(fā)布后,主要用于提供靜態(tài)文件,并在Apache安裝之前用作負(fù)載平衡器或反向代理。 隨著網(wǎng)絡(luò)的發(fā)展以及對速度和硬件使用效率的高要求,越來越多的網(wǎng)站開始使用Nginx完全替換Apache,這也要歸功于更成熟的軟件。
現(xiàn)在市場上nginx的份額已經(jīng)超過了Apache,很多大公司都開始采用nginx作為后端的web服務(wù)器,有些大公司甚至?xí)薷膎ginx的部分代碼來使用,比如我們熟知的Tengine。
nginx最初設(shè)計的時候就是模塊化的思想,它的所有功能都是采用模塊形式提供的,需要什么功能,只要對應(yīng)加載相應(yīng)的模塊就可以。
nginx一直都在全速發(fā)展著,目前最新的web技術(shù)quic和http3也已經(jīng)在最新版的nginx中提供實現(xiàn)了。成都網(wǎng)站建設(shè)公司
緩存
apahce和nginx都提供了緩存功能。apache有mod_cache模塊,nginx也有fastcgi緩存??梢哉f沒有緩存的web系統(tǒng)幾乎不可能支撐如今高訪問的情況。當(dāng)然,說道緩存,最專業(yè)的還是Varnish HTTP。不過因為nginx可以和它完美地結(jié)合,所以這也是越來越多人擁抱nginx的一個理由。
apache和nginx處理請求方式
apache和nginx大的不同在于它們處理請求的方式。
apache使用MPM(Multi-Processing-Modules)處理請求。
早期的mpm是prefork模塊。在這種模式下,Apache會在每個請求中生成一個線程的新進(jìn)程。該模塊與mod_php一起使用,意味著Apache服務(wù)器在每個進(jìn)程中都嵌入了一個PHP解釋器,雖然可能這個請求只是請求css等靜態(tài)文件。這是非常低效的。
在后來的幾年中,Apache開發(fā)了多線程工作程序mpm,之后又開發(fā)了事件mpm。它們都減輕了許多Apache的性能問題。切換到php-fpm使得Apache仍然可以成為當(dāng)今競爭性的解決方案,并且消除了.htaccess的使用,這讓apache的處理效率提升了很多。
Nginx使用異步,非阻塞事件來處理請求。
簡而言之,Apache對每個連接都使用進(jìn)程(對于worker mpm,它使用線程)。隨著流量的增加,它很快變得太昂貴了。成都網(wǎng)站建設(shè)公司
事件mpm在優(yōu)化方面更進(jìn)一步,但是一些測試表明它不能超過Nginx。尤其是當(dāng)我們談?wù)撿o態(tài)文件時,Nginx的服務(wù)量是Apache的兩倍。
Nginx理想情況下,每個CPU /內(nèi)核只有一個工作進(jìn)程。 Nginx工作進(jìn)程的區(qū)別在于,每個工作進(jìn)程可以處理每個工作進(jìn)程成千上萬的傳入網(wǎng)絡(luò)連接。無需為每個連接創(chuàng)建新的線程或進(jìn)程。
總結(jié)
從目前的的發(fā)展眼光來看,nginx卻是比apache的性能更優(yōu)越,而且有越來越多的輔助插件構(gòu)建在nginx上面,所以,如果你的web項目剛起步,建議您選擇nginx來作為服務(wù)器,它可以給你提供更優(yōu)秀的性能體驗,當(dāng)然,對于中小型項目來說,apahce依然也是不錯的選擇。特別是他的.htaccess確實非常好用。
當(dāng)前題目:NginxvsApache兩大web服務(wù)器比較
文章路徑:http://aaarwkj.com/article18/gggp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計公司、移動網(wǎng)站建設(shè)、品牌網(wǎng)站建設(shè)、App開發(fā)、虛擬主機(jī)、微信公眾號
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)