LZ最近公司有一個項目在Web服務器選型上,在Apache和Nginx之間引發了一些討論。這二者目前都是業內優秀的web服務器,都實現了HTTP1.1協議。固然,技術歷來都是爲實現業務而發展的,因此技術選型上,也最好是根據應用場景來決定。接下來,咱們對這兩種出色的web服務器進行一下對比。nginx
Web服務器,也稱爲WWW服務器,主要是提供信息瀏覽服務。應用層使用HTTP協議;HTML文檔格式;URL程序員
Apache HTTP Server 是Apache軟件基金會的網頁服務器,因爲其跨平臺和安全性。被普遍使用,是最流行的Web服務器端軟件之一。快速、可靠而且可經過簡單API擴充,將Perl/Python等解釋器編譯到服務器中。web
Nginx(發音同engine x)是一款由俄羅斯程序員Igor Sysoev所開發輕量級的網頁服務器、反向代理服務器以及電子郵件(IMAP/POP3)代理服務器。apache
Apache 和 Nginx相關架構及工做模式,在這裏都很少作概述了。可參考學習:https://cloud.tencent.com/developer/news/233604安全
實現上都採用模塊化結構設計,都支持通用的語言接口,如PHP、Perl、Python等,同時還支持正向和反向代理、虛擬主機、URL重寫、壓縮傳輸、SSL加密傳輸等。性能優化
Web服務器 | Apache | Nginx |
---|---|---|
編譯方式 | 動、靜態編譯 | 靜態編譯 |
FastCGI | 支持很差 | 很是好 |
處理鏈接方式 | 不支持epoll | 支持epoll,高性能,低消耗 |
佔用空間 | 大 | 小(幾百k) |
內存資源佔用 | 大 | 小 |
靜態處理性能 | 通常 | 高 |
併發 | 通常,阻塞型 | 異步非阻塞 |
模塊擴展 | 多 | 通常,社區活躍 |
bug數 | 成熟、bug不多 | 較多 |
rewrite | 強大 | 通常 |
穩定性 | 高 | 很是高 |
安全性 | 好 | 通常 |
高可用性 | 通常,不支持熱部署 | Nginx支持熱部署,啓動速度特別迅速 |
性能 | 通常 | Nginx是專門爲性能優化而開發的,在實現上很是注重效率 |
因爲Apache和Nginx的各自優點,最終決定同時使用這兩種。Nginx部署在前,Apache在後。由Nginx作負載均衡和反向代理,以及靜態資源文件,Apache處理動態請求。服務器