有很多人都在說Nginx比Apache好、比Apache快的這類說法,因為大家對apache和nginx選哪個的概念也比較模糊,什么情況下選Nginx,什么情況下選Apache ,今天我們來聊下這個問題

Apache是什么?
Apache HTTP Server(簡稱Apache)是Apache軟件基金會的一個開放源碼的網(wǎng)頁服務(wù)器,可以在大多數(shù)計算機操作系統(tǒng)中運行,由于其多平臺和安全性被廣泛使用,是最流行的Web服務(wù)器端軟件之一。它快速、可靠并且可通過簡單的API擴展,將Perl/Python等解釋器編譯到服務(wù)器中。它可以運行在幾乎所有廣泛使用的計算機平臺上,由于其跨平臺和安全性被廣泛使用,是最流行的Web服務(wù)器端軟件之一。
Apache 的特性有哪些:
1、支持最新的HTTP/1.1通信協(xié)議
2、擁有簡單而強有力的基于文件的配置過程
3、支持通用網(wǎng)關(guān)接口
4、支持基于IP和基于域名的虛擬主機
5、支持多種方式的HTTP認證
6、集成Perl處理模塊
7、集成代理服務(wù)器模塊
8、支持實時監(jiān)視服務(wù)器狀態(tài)和定制服務(wù)器日志
9、支持服務(wù)器端包含指令(SSI)
10、支持安全Socket層(SSL)
11、提供用戶會話過程的跟蹤
12、支持FastCGI
13、通過第三方模塊可以支持JavaServlets

Nginx是什么?
Nginx是一個來自俄羅斯的流行的Web應(yīng)用服務(wù)器,它被應(yīng)用于大量的俄羅斯的高并發(fā)站點,俄羅斯的搜索引擎網(wǎng)站Rambler就是基于Nginx構(gòu)建的。Nginx對靜態(tài)頁面的支持相當出色,輕量且免費。Nginx不支持CGI,但是支持更靈活的FastCGI。PHP5.2及之前的版本比較多的是使用PHP-FPM來管理PHP FastCGI進程。PHP-FPM使用給PHP源碼打補丁后編譯的方式讓新手多少有些難上手,但從PHP 5.3.2開始內(nèi)置PHP-FPM,只需編譯PHP時啟用PHP-FPM。
Nginx的特性有哪些:
1、處理靜態(tài)文件,索引文件以及自動索引;打開文件描述符緩沖
2、無緩存的反向代理加速,簡單的負載均衡和容錯
3、FastCGI,簡單的負載均衡和容錯
4、模塊化的結(jié)構(gòu)。包括gzipping, byte ranges, chunked responses, 以及 SSI-filter等filter。如果由FastCGI或其它代理服務(wù)器處理單頁中存在的多個SSI,則這項處理可以并行運行,而不需要相互等待
5、支持SSL 和 TLS SNI
Nginx專為性能優(yōu)化而開發(fā),性能是其最重要的考量, 實現(xiàn)上非常注重效率 。它支持內(nèi)核Poll模型,能經(jīng)受高負載的考驗, 有報告表明能支持高達 50,000 個并發(fā)連接數(shù)。
nginx 相對 apache 的優(yōu)點:
1、 輕量級,同樣起web 服務(wù),比apache 占用更少的內(nèi)存及資源
2、抗并發(fā),nginx 處理請求是異步非阻塞的,而apache 則是阻塞型的,在高并發(fā)下nginx 能保持低資源低消耗高性能
3、 高度模塊化的設(shè)計,編寫模塊相對簡單
4、社區(qū)活躍,各種高性能模塊出品迅速啊
5、 nginx處理靜態(tài)文件好,耗費內(nèi)存少
6、 Nginx 配置簡潔, Apache 復(fù)雜
apache 相對nginx 的優(yōu)點:
1、 rewrite方面比nginx 的rewrite 強大
2、模塊超多,基本想到的都可以找到
3、 bug比較少 ,nginx 的bug 相對較多
4、 比較穩(wěn)定
5、Apache 對 PHP 支持比較簡單,Nginx 需要配合其他后端用
6、Apache 的組件比 Nginx 多
總結(jié):服務(wù)器該用Nginx還是Apache?
1、作為 Web 服務(wù)器:相比 Apache,Nginx 使用更少的資源,支持更多的并發(fā)連接,體現(xiàn)更高的效率,這點使 Nginx 尤其受到虛擬主機提供商的歡迎。在高連接并發(fā)的情況下,Nginx是Apache服務(wù)器不錯的替代品: Nginx在美國是做虛擬主機生意的老板們經(jīng)常選擇的軟件平臺之一. 能夠支持高達 50,000 個并發(fā)連接數(shù)的響應(yīng), 感謝Nginx為我們選擇了 epoll and kqueue 作為開發(fā)模型。
2、Nginx作為負載均衡服務(wù)器: Nginx 既可以在內(nèi)部直接支持 Rails 和 PHP 程序?qū)ν膺M行服務(wù), 也可以支持作為 HTTP代理 服務(wù)器對外進行服務(wù). Nginx采用C進行編寫, 不論是系統(tǒng)資源開銷還是CPU使用效率都比 Perlbal 要好很多.
作為郵件代理服務(wù)器: Nginx 同時也是一個非常優(yōu)秀的郵件代理服務(wù)器(最早開發(fā)這個產(chǎn)品的目的之一也是作為郵件代理服務(wù)器), Last.fm 描述了成功并且美妙的使用經(jīng)驗。
3、Nginx 是一個安裝非常的簡單 , 配置文件非常簡潔(還能夠支持perl語法), Bugs 非常少的服務(wù)器: Nginx 啟動特別容易, 并且?guī)缀蹩梢宰龅?*24不間斷運行,即使運行數(shù)個月也不需要重新啟動. 你還能夠不間斷服務(wù)的情況下進行軟件版本的升級 。
4、最核心的區(qū)別在于apache是同步多進程模型,一個連接對應(yīng)一個進程;nginx是異步的,多個連接(萬級別)可以對應(yīng)一個進程。
apache運行php比較好,適合跑動態(tài),nginx比較適合跑靜態(tài)。現(xiàn)在流行的lanmp架構(gòu)就是同時使用apache和nginx,靜態(tài)網(wǎng)頁有nginx處理,動態(tài)交由apache處理,這樣就能更大限度的發(fā)揮服務(wù)器性能。
更多有關(guān)服務(wù)器部署的資訊,請聯(lián)系藍暢客服
本文來自網(wǎng)絡(luò) 由藍暢整理,經(jīng)授權(quán)后發(fā)布,本文觀點不代表Infocode藍暢信息技術(shù)立場,轉(zhuǎn)載請聯(lián)系原作者。