好幾年沒接觸過apache了,相反nginx倒是在工作中應用場景比比皆是!

大概四五年前apache+tomcat都還是web服務端的主流架構,apache跟tomcat這種應用伺服器能良好結合,但是nginx出現之後,apache就大勢已去了,因為"老毛子"寫的nginx輕量級,高性能,超穩定風靡全球,幾乎成了伺服器後端的必備伺服器了!

現對比下apache和nginx的特點,就能知道它們的性能差異!

使用模型:apache使用的是同步多線程模式,對每一個連接都必須有一個線程來保持連接,而nginx使用epoll模型,採用非同步非阻塞模式,使用一個master進程用來接收所有連接,當有請求的時候,分配worker進程來處理請求,避免了大量創建和CPU切換線程的開銷,單臺apache架構只能維持最多幾千的連接,而nginx能支持幾萬的並發量!

nginx優點:輕量級,支持並發量高,作為反向代理伺服器能支持多種負載均衡方式,配置簡單等!

apache優點:穩定。

現在大型的服務系統中,很依賴於nginx的使用,使用nginx集羣能應付大量並發所帶來的性能瓶頸,並通過負載均衡將請求分發到應用伺服器上。

不僅如此,隨著應用系統前後端分離技術的發展,使用nginx的反向代理可輕鬆解決前後端帶來的跨域訪問問題!

所以掌握nginx的安裝,配置,維護是後端開發不可或缺的能力,關於JAVA相關的技術,後期會有很多分享,敬請關注。。


具體不多說什麼了,nginx快有他的道理,但是反過來他也犧牲一些特性。又快又好的東西是不存在的,除非革命性的變化,


apache 在2.4 版以前,網路方面性能遠不如 nginx ,到了 2.4 學了 nginx 重做了網路方面的代碼,才拉進了性能差距。


推薦閱讀:
相關文章