為什么有人覺得nginx比Apache高效?
好幾年沒接觸過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相關的技術,后期會有很多分享,敬請關注。。