1. 程式人生 > >Nginx與Apache優缺點比較

Nginx與Apache優缺點比較

正向代理 : 是一個位於客戶端和原始伺服器 (origin server) 之間的伺服器,為了從原始伺服器取得內容, 客戶端向代理髮送一個請求並指定目標 ( 原始伺服器 ) ,然後代理向原始伺服器轉交請求並將獲得的內容返回給客戶端。客戶端必須要進行一些特別的設定才能使用正向代理 。 反向代理( Reverse Proxy )方式是指以 代理伺服器 來接受 internet 上的連線請求,然後將請求轉發給內部網路上的伺服器,並將從伺服器上得到的結果返回給 internet 上請求連線的 客戶端 ,此時代理伺服器對外就表現為一個伺服器。 當一個 代理伺服器 能夠代理外部網路上的 主機 ,訪問內部網路時,這種代理服務的方式稱為反向代理服務。此時 代理伺服器 對外就表現為一個 Web 伺服器,外部網路就可以簡單把它當作一個標準的 Web 伺服器而不需要特定的配置。 不同之處在於,這個伺服器沒有儲存任何網頁的真實資料,所有的靜態網頁或者 CGI 程式,都儲存在內部的 Web 伺服器上。 因此對反向 代理伺服器 的攻擊並不會使得網頁資訊遭到破壞,這樣就增強了 Web 伺服器的安全性。
Nginx (發音同  engine x )是一款輕量級的 Web  伺服器 / 反向代理伺服器及電子郵件( IMAP/POP3 )代理伺服器,並在一個 BSD-like  協議下發行。由俄羅斯的程式設計師 Igor Sysoev 所開發,供俄國大型的入口網站及搜尋引擎 Rambler (俄文: Рамблер )使用。其特點是佔有 記憶體 少, 併發 能力強,事實上 nginx 的併發能力確實在同類型的網頁伺服器中表現較好,中國大陸使用 nginx 網站使用者有: 新浪 、 網易 、  騰訊 等。 Nginx  可以在大多數  Unix  like OS  上編譯執行,並有  Windows  移植版。  Nginx  的 1.4.0 穩定版已經於 2013 年 4 月 24 日釋出,一般情況下,對於新建站點,建議使用最新穩定版作為生產版本,已有站點的升級急迫性不高。 Nginx  的 原始碼 使用  2-clause BSD-like license 。
Apache http server 是世界使用排名第一的 Web 伺服器 軟體。它可以執行在幾乎所有廣泛Apache Server 配置介面 ,使用的 計算機平臺 上.Apache 源於 NCSAhttpd 伺服器,經過多次修改,成為世界上最流行的 Web 伺服器 軟體之一。 Apache 取自 “a patchy server” 的讀音,意思是充滿補丁的伺服器,因為它是 自由軟體 ,所以不斷有人來為它 開發 新的功能、新的特性、修改原來的缺陷。 Apache 的特點是簡單、速度快、效能穩定,並可做 代理伺服器 來使用。  Nginx  (發音同  engine x )是一款輕量級的 Web  伺服器/反向代理伺服器及電子郵件( IMAP/POP3 )代理伺服器,並在一個 BSD-like  協議下發行。  其特點是佔有記憶體少,併發能力強,事實上 nginx 的併發能力確實在同類型的網頁伺服器中表現較好 . 目前中國大陸使用 nginx 網站使用者有:新浪、網易、 騰訊 , 另外知名的微網誌 Plurk 也使用 nginx 。
什麼是反向代理負載均衡 使用 代理伺服器 可以將請求轉發給內部的 Web 伺服器,使用這種加速模式顯然可以提升靜態網頁的訪問速度。因此也可以考慮使用這種技術,讓 代理伺服器 將請求 均勻轉發給多臺內部 Web 伺服器之一上,從而達到負載均衡的目的。這種代理方式與普通的代理方式有所不同,標準代理方式是客戶使用代理訪問多個外部 Web  伺服器,而這種代理方式是多個客戶使用它訪問內部 Web 伺服器,因此也被稱為反向代理模式。 1、nginx相對於apache的優點:  輕量級,同樣起web 服務,比apache佔用更少的記憶體及資源  抗併發,nginx 處理請求是非同步非阻塞的,而apache 則是阻塞型的,在高併發下nginx 能保持低資源低消耗高效能 補充: 同步傳輸:瀏覽器發起請求,而後請求會立刻被轉到後臺,於是在瀏覽器和後臺之間就建立了一個通道。在請求發起直到請求完成,這條通道都是一直存在的。 非同步傳輸:瀏覽器發起請求,請求不會立刻轉到後臺,而是將請求資料(header)先收到nginx上,然後nginx再把這個請求發到後端,後端處理完之後把資料返回到nginx上,nginx將資料流發到瀏覽器,這點和lighttpd有點不同,lighttpd是將後端資料完全接收後才傳送到瀏覽器。 高度模組化的設計,編寫模組相對簡單  社群活躍,各種高效能模組出品迅速 apache 相對於nginx 的優點: rewrite ,比nginx 的rewrite 強大  動態頁面 模組超多,基本想到的都可以找到  少bug ,nginx 的bug 相對較多  超穩定 存在就是理由,一般來說,需要效能的web 服務,用nginx 。如果不需要效能只求穩定,那就apache 吧。後者的各種功能模組實現得比前者,例如ssl 的模組就比前者好,可配置項多。這裡要注意一點,epoll(freebsd 上是 kqueue )網路IO 模型是nginx 處理效能高的根本理由,但並不是所有的情況下都是epoll 大獲全勝的,如果本身提供靜態服務的就只有寥寥幾個檔案,apache 的select 模型或許比epoll 更高效能。當然,這只是根據網路IO 模型的原理作的一個假設,真正的應用還是需要實測了再說的。  2、作為 Web 伺服器:相比 Apache,Nginx 使用更少的資源,支援更多的併發連線,體現更高的效率,這點使 Nginx 尤其受到虛擬主機提供商的歡迎。在高連線併發的情況下,Nginx是Apache伺服器不錯的替代品: Nginx在美國是做虛擬主機生意的老闆們經常選擇的軟體平臺之一. 能夠支援高達 50,000 個併發連線數的響應, 感謝Nginx為我們選擇了 epoll and kqueue 作為開發模型.  Nginx作為負載均衡伺服器: Nginx 既可以在內部直接支援 Rails 和 PHP 程式對外進行服務, 也可以支援作為 HTTP代理 伺服器對外進行服務. Nginx採用C進行編寫, 不論是系統資源開銷還是CPU使用效率都比 Perlbal 要好很多.  作為郵件代理伺服器: Nginx 同時也是一個非常優秀的郵件代理伺服器(最早開發這個產品的目的之一也是作為郵件代理伺服器), Last.fm 描述了成功並且美妙的使用經驗.  Nginx 是一個安裝非常的簡單 , 配置檔案非常簡潔(還能夠支援perl語法), Bugs 非常少的伺服器: Nginx 啟動特別容易, 並且幾乎可以做到7*24不間斷執行,即使執行數個月也不需要重新啟動. 你還能夠不間斷服務的情況下進行軟體版本的升級 .  3、Nginx 配置簡潔, Apache 複雜  Nginx 靜態處理效能比 Apache 高 3倍以上  Apache 對 PHP 支援比較簡單,Nginx 需要配合其他後端用  Apache 的元件比 Nginx 多  現在 Nginx 才是 Web 伺服器的首選,許多大型網際網路企業早已使用nginx了。 4、最核心的區別在於apache是同步多程序模型,一個連線對應一個程序;nginx是非同步的,多個連線(萬級別)可以對應一個程序  5、nginx處理靜態檔案好,耗費記憶體少.但無疑apache仍然是目前的主流,有很多豐富的特性.所以還需要搭配著來.當然如果能確定nginx就適合需求,那麼使用nginx會是更經濟的方式.  apache有先天不支援多核心處理負載雞肋的缺點,建議使用nginx做前端,後端用apache。大型網站建議用nginx自帶的叢集功能 6、從使用情況來看,nginx的負載能力比apache高很多。而且nginx改完配置能-t測試一下配置有沒有問題,apache重啟的時候發現配置出錯了,會很崩潰,改的時候都會非常小心翼翼現在看有好多叢集站,前端nginx抗併發,後端apache叢集,配合的也不錯。 7、nginx處理動態請求是雞肋,一般動態請求要apache去做,nginx只適合靜態和反向。  8、nginx是很不錯的前端伺服器,負載效能很好,在老奔上開nginx,用webbench模擬10000個靜態檔案請求毫不吃力。apache對PHP等語言的支援很好,此外apache有強大的支援網路,發展時間相對nginx更久。 9、Nginx優於apache的主要兩點:1.Nginx本身就是一個反向代理伺服器 2.Nginx支援7層負載均衡;其他的當然,Nginx可能會比apache支援更高的併發。  10、你對web server的需求決定你的選擇。大部分情況下nginx都優於APACHE,比如說靜態檔案處理、PHP-CGI的支援、反向代理功能、前端Cache、維持連線等等。在Apache+PHP(prefork)模式下,如果PHP處理慢或者前端壓力很大的情況下,很容易出現Apache程序數飆升,從而拒絕服務的現象。  11、可以看一下nginx lua模組:https://github.com/chaoslaw...apache比nginx多的模組,可直接用lua實現apache是最流行的,why?大多數人懶得更新到nginx或者學新事物。  12、對於nginx,它配置檔案寫的很簡潔,正則配置讓很多事情變得簡單執行效率高,佔用資源少,代理功能強大,很適合做前端響應伺服器。

13、Apache在處理動態有優勢,Nginx併發性比較好,CPU記憶體佔用低,如果rewrite頻繁,那還是Apache較適合。

相關推薦

NginxApache優缺點比較

正向代理 : 是一個位於客戶端和原始伺服器 (origin server) 之間的伺服器,為了從原始伺服器取得內容, 客戶端向代理髮送一個請求並指定目標 ( 原始伺服器 ) ,然後代理向原始伺服器轉交請求並將獲得的內容返回給客戶端。客戶端必須要進行一些特別的設定才能使用正

NginxApache比較

一個 性能 影響 lec rewrite 定性 poll 超過 內存 Nginx特點:高性能epoll 異步非阻塞多個連接(萬級別)可以對應一個進程 支持反向代理支持7層負載均衡靜態文件、反向代理、前端緩存等處理方便支持高並發連接,每秒最多的並發連接請求理論可以達到 500

NginxApache各自優缺點

1、nginx相對於apache的優點: 輕量級,同樣起web 服務,比apache佔用更少的記憶體及資源 抗併發,nginx 處理請求是非同步非阻塞的,而apache 則是阻塞型的,在高併發下nginx 能保持低資源低消耗高效能 高度模組化的設計,編寫模組相對簡單

使用Apache的ab工具對比NginxApache靜態頁面處理能力

tt使用Apache的ab工具對比Nginx與Apache靜態頁面處理能力前言:為什麽要進行壓力測試 在運維工作中,壓力測試是一項非常重要的工作。比如在一個網站上線之前,能承受多大訪問量、在大訪問量情況下性能怎樣,這些數據指標好壞將會直接影響用戶體驗。但是,在壓力測試中存在一個共性,那就是壓力測

SVNGit優缺點比較

數據 管理機 容量 nbsp 相對 方便 服務器壓力 一致性 family 1.SVN優缺點優點: 1、 管理方便,邏輯明確,符合一般人思維習慣。 2、 易於管理,集中式服務器更能保證安全性。 3、 代碼一致性非常高。 4、 適合開發人數不多的項目開發。 缺點: 1、 服務

簡析 Tomcat 、Nginx Apache 的區別

簡析 Tomcat 、Nginx 與 Apache 的區別 本文講的是簡析 Tomcat 、Nginx 與Apache的區別, 經常在用 apache 和 tomcat 等這些伺服器,可是總感覺還是不清楚他們之間有什麼關係,在用 tomcat 的時候總出現 apache,總是感到迷惑。這可能是很多初學伺服

NginxApache解析php檔案的區別

一、Apache是如何解析php檔案的 我們常說的lamp架構是linux、apache、mysql、php,我們知道任何架構或者網站離不開資料庫的支援,那麼php和apache又是如何協同工作的呢? php是apache的一個外掛程式,必須依靠web伺服器才可以執行

NginxApache效能比較

摘抄自http://blog.zyan.cc/nginx_php_v6/     Nginx(engine x)是一個高效能的http和反向代理伺服器,也是一個 IMAP/POP3/SMTP代理伺服器,Ngix是由Igor Sysoev為俄羅斯訪問量第二的 Rambler.

NginxApache的區別

代理服務器 平臺 更新 select lua 例如 存在 pla for 1、nginx相對於apache的優點: 輕量級,同樣起web 服務,比apache占用更少的內存及資源 抗並發,nginx 處理請求是異步非阻塞的,而apache 則是阻塞型的,在高並發下ngi

靜態資源較多的站點使用nginxapache的負載均衡架構

針對所搭建的站點圖片、靜態網頁較多的特點特提出解決方案如下: 1.站點架構設計 根據nginx處理併發請求能力強apache穩定、高效的特點,本站點架構為:由一臺nginx和兩臺apache組成。nginx用來作為反向代理伺服器,放置到兩臺apache之前,作為使用者訪問的

淺談NginxApache的區別

1、Nginx是一個很強大的高效能Web、郵件和反向代理伺服器,它具有很多非常優越的特性, 在連線高併發的情況下,Nginx是Apache伺服器不錯的替代品。 2、單機能夠支援高

Linux伺服器下NginxApache共存

同一個埠是不能同時有兩個程式監聽的。所以換個思路解決同一臺伺服器下某些網站執行在nginx下,某些網站執行在Apache下共存。 解決思路: 將nginx作為代理伺服器和web伺服器使用,

NginxApache、Tomcat、Resin動靜分離的配置

同上,把下面配置放到nginx配置檔案相應的server { }裡面: #所有jsp的頁面均交由tomcat或resin處理 location ~ .(jsp|jspx|do)?$ { proxy_set_header Host $host; proxy_set_header X-Real-IP $remot

nginxapache詳細效能對比

之前一直研究nginx的原始碼,最近有時間也做了下nginx與apache的效能對比,希望能夠夠對大家有所幫助! nginx動態檔案處理能力差? 這是我最困惑的地方,在google了nginx之後發現它的評價並沒有想象中那麼差勁,並且很多公司已經開始用nginx+

ApacheNginx優缺點比較

bench 內存 apache服務 rewrite 你的選擇 其他 rail 都是 web Apache與Nginx的優缺點比較 1、nginx相對於apache的優點: 輕量級,同樣起web 服務,比apache 占用更少的內存及資源 抗並發,nginx 處理請求是異步非

ApacheNginx,tomcat的優缺點比較

1、nginx相對於apache的優點:  輕量級,同樣起web 服務,比apache 佔用更少的記憶體及資源  抗併發,nginx 處理請求是非同步非阻塞的,而apache 則是阻塞型的,在高併發下nginx 能保持低資源低消耗高效能  高度模組

ApacheNginx優缺點比較

存在就是理由,一般來說,需要效能的web 服務,用nginx 。如果不需要效能只求穩定,那就apache 吧。後者的各種功能模組實現得比前者,例如ssl 的模組就比前者好,可配置項多。這裡要注意一點,epoll(freebsd 上是 kqueue )網路IO 模型是nginx 處理效能高的根本理由,但並不是所

深入ApacheNginx優缺點比較詳解

轉載地址:http://www.jb51.net/article/38616.htm 1、nginx相對於apache的優點: 輕量級,同樣起web 服務,比apache佔用更少的記憶體及資源  抗併發,nginx 處理請求是非同步非阻塞的,而apache 則是阻塞型的,

jdbchibernate的優缺點比較

article 訪問速度 了解 狀態 iterator 一秒 集群 也不會 數據屬性 jdbc與hibernate的優缺點比較 一、 Hibernate是JDBC的輕量級的對象封裝,它是一個獨立的對象持久層框架,和App Server,和EJB沒有什麽必然的聯系。H

動態庫靜態庫優缺點比較

命令 編譯 現實 產生 會有 重新編譯 種類 並且 發現 動態庫與靜態庫優缺點比較 (2012-10-18 15:31) 我們在編寫一個C語言程序的時候,經常會遇到好多重復或常用的部分,如果每次都重新編寫固然是可以的,不過那樣會大大降低工作效率,並且影響代碼的