1. 程式人生 > >運維與架構—Nginx的優缺點

運維與架構—Nginx的優缺點

Nginx的優點是:

 1、工作在網路的7層之上,可以針對http應用做一些分流的策略,比如針對域名、目錄結構

它的正則規則比HAProxy更為強大和靈活,這也是它目前廣泛流行的主要原因之一

Nginx單憑這點可利用的場合就遠多於LVS了。

2、Nginx對網路穩定性的依賴非常小,理論上能ping通就就能進行負載功能,這個也是它的優勢之一

相反LVS對網路穩定性依賴比較大,這點本人深有體會;

3、Nginx安裝和配置比較簡單,測試起來比較方便,它基本能把錯誤用日誌打印出來

LVS的配置、測試就要花比較長的時間了,LVS對網路依賴比較大。

4、可以承擔高負載壓力且穩定,在硬體不差的情況下一般能支撐幾萬次的併發量,負載度比LVS相對小些。

5、Nginx可以通過埠檢測到伺服器內部的故障,比如根據伺服器處理網頁返回的狀態碼、超時等等,並且會把返回錯誤的請求重新提交到另一個節點,不過其中缺點就是不支援url來檢測。比如使用者正在上傳一個檔案,而處理該上傳的節點剛好在上傳過程中出現故障,Nginx會把上傳切到另一臺伺服器重新處理,而LVS就直接斷掉了

如果是上傳一個很大的檔案或者很重要的檔案的話,使用者可能會因此而不滿。

6、Nginx不僅僅是一款優秀的負載均衡器/反向代理軟體,它同時也是功能強大的Web應用伺服器

LNMP也是近幾年非常流行的web架構,在高流量的環境中穩定性也很好。

7、Nginx現在作為Web反向加速快取越來越成熟了,速度比傳統的Squid伺服器更快,可考慮用其作為反向代理加速器

8、Nginx可作為中層反向代理使用,這一層面Nginx基本上無對手,唯一可以對比Nginx的就只有lighttpd了

不過lighttpd目前還沒有做到Nginx完全的功能,配置也不那麼清晰易讀,社群資料也遠遠沒Nginx活躍

9、Nginx也可作為靜態網頁和圖片伺服器,這方面的效能也無對手。還有Nginx社群非常活躍,第三方模組也很多

 

Nginx的缺點是:

1、Nginx僅能支援http、https和Email協議,這樣就在適用範圍上面小些,這個是它的缺點

2、對後端伺服器的健康檢查,只支援通過埠來檢測,不支援通過url來檢測

      不支援Session的直接保持,但能通過ip_hash來解決