做爲一名JavaWeb方向程序員,更多的是寫服務器後臺代碼,可是俗話說,不想當架構師的程序員不是好程序員,咱們要對併發、負載等詞彙進行深刻探索。前端
1、從新認識Tomcatnginx
以上列舉了Tomcat這個Web應用服務器的不足之處以及它的側重點,由於它是Apache服務器的一個獨立擴展插件,因此要將Apache服務器和Tomcat應用服務器一塊兒使用才能取之長處避之短處。程序員
可是隨着Nginx服務器的襲來,Apache服務器的主流功能均可被Nginx服務器代替,並且Nginx服務器的性能更好。Nginx對請求的處理是異步型的,非阻塞的;而Apache對請求的處理是阻塞型,非異步型的;在高併發狀況下Nginx能保持地資源低消耗高性能高度模塊化,並且Nginx的配置文件相對Apache更爲簡單。Nginx 同時也是一個很是優秀的郵件代理服務器,so,爲何不選擇Nginx服務器呢?後端
2、認識Nginx
瀏覽器
3、Nginx的功能緩存
Nginx還不止這些功能,我只是列出了常見的功能。tomcat
4、關於負載均衡服務器
當一臺服務器的處理能力、存儲空間不足時,不要企圖去換更強大的服務器,對大型網站而言,無論多麼強大的服務器,都知足不了網站持續增加的業務需求。這種狀況下,更恰當的作法是增長一臺服務器分擔原有服務器的訪問及存儲壓力。擴展網絡設備和服務器的帶寬、增長吞吐量、增強網絡數據處理能力、提升網絡的靈活性和可用性。其意思就是分攤到多個操做單元上進行執行。網絡
在這裏咱們只闡述對請求的的負載均衡。數據結構
經過負載均衡調度服務器,未來自瀏覽器的訪問請求分發到應用服務器集羣中的任何一臺服務器上,若是有更多的用戶,就在集羣中加入更多的應用服務器,使應用服務器的負載壓力再也不成爲整個網站的瓶頸。
理論上的JavaWeb項目結構應該是這樣的
5、Nginx和Tomcat對請求負載均衡的方案
總體思想方向:前端部署nginx服務器,後端部署tomcat應用。用戶訪問nginx服務器,對於靜態資源nginx服務器直接返回到瀏覽器展現給用戶,對動態資源的請求被nginx服務器轉發(分配)到tomcat應用服務器,tomcat應用服務器將處理後獲得的數據結構返回給nginx服務器,而後返回到瀏覽器展現給用戶。
注意:在這裏Tomcat應用服務器就是Java應用,能夠理解爲後臺。
總結:在這裏Nginx做爲反向代理服務器,能夠對後臺的多臺Tomcat服務器負載均衡,也可讓Nginx處理靜態頁面的請求、Tomcat處理JSP頁面請求,以此達到動靜分離的目的。
這篇博客講解科普、理論和方向,下篇博客將帶來實踐。