目前比較主流的 web 服務器應用也就是 nginx 和 apache 了,今天就給大家闡述一下為什么我一直都推薦大家使用 nginx 而不是 apache?
有關 Nginx 和 Apache 的介紹我就不做贅述了,大家自行百度、谷歌一下就可以了解了,廢話不多說了,直奔主題:
1、作為 Web 服務器:相比 Apache,Nginx 使用更少的資源,支持更多的并發連接,體現更高的效率,這點使 Nginx 尤其受到虛擬主機提供商的歡迎。 ? (推薦學習:nginx教程)
在高連接并發的情況下,Nginx 是 Apache 服務器不錯的替代品;Nginx 在美國是做虛擬主機生意的老板們經常選擇的軟件平臺之一。能夠支持高達 50000 個并發連接數的響應,感謝 Nginx 為我們選擇了 epoll and kqueue 作為開發模型。
Nginx 作為負載均衡服務器:Nginx 既可以在內部直接支持 Rails 和 PHP 程序對外進行服務,也可以支持作為 HTTP 代理服務器對外進行服務。Nginx 采用 C 進行編寫,不論是系統資源開銷還是 CPU 使用效率都比 Perlbal 要好很多。
2、Nginx 配置簡潔,Apache 復雜,Nginx 啟動特別容易,并且幾乎可以做到 7*24 不間斷運行,即使運行數個月也不需要重新啟動。你還能夠不間斷服務的情況下進行軟件版本的升級。Nginx 靜態處理性能比 Apache 高 3 倍以上,Apache 對 PHP 支持比較簡單,Nginx 需要配合其他后端來使用,Apache 的組件比 Nginx 多。
3、最核心的區別在于 Apache 是同步多進程模型,一個連接對應一個進程;Nginx 是異步的,多個連接(萬級別)可以對應一個進程。
4、Nginx 的優勢是處理靜態請求,cpu 內存使用率低,Apache 適合處理動態請求,所以現在一般前端用 Nginx 作為反向代理抗住壓力,Apache 作為后端處理動態請求。
Nginx 相對 Apache 的優點
輕量級,同樣起 web 服務,比 Apache 占用更少的內存及資源
抗并發,Nginx 處理請求是異步非阻塞的,而 Apache 則是阻塞型的,在高并發下 Nginx 能保持低資源低消耗高性能
高度模塊化的設計,編寫模塊相對簡單
社區活躍,各種高性能模塊出品迅速啊
Apache 相對 Nginx 的優點
rewrite,比 Nginx 的 rewrite 強大
模塊超多,基本想到的都可以找到
少 bug,Nginx 的 bug 相對較多
超穩定
最后 Nginx 和 Apache 的差異總結成一句話就是:“Nginx 適合處理靜態請求和反向代理,Apache 適合處理動態請求”。
但這個差異化只有在請求量達到一定的閾值時表現差異才能表現出來,對于 WordPress 、 Typecho 等等這里動態站點來說某一天流量達到這個閾值的時候,還可以部署 LNMPA 這樣的生產環境來應對和解決。所以流量閾值需求不到的時候,選擇 Nginx 是性價比最好的選擇了。