Nginx+tomcat實現高併發場景的動靜分離和負載均衡,程序員收藏了

簡介

Java服務大多是跑在tomcat裡,但是眾所周知tomcat的併發性能沒有優勢(tomcat8及以上的版本可能有所改善),所以為了更好的適應高併發的應用場景,我們可以使用tomcat+nginx實現動靜分離,在處理靜態請求的時候,就直接給Nginx處理,動態請求就轉給tomcat處理。

簡單一句話就是,nginx負責靜態請求,以及高併發下的負載均衡調度動態請求給tomcat處理。

Nginx配置普通tomcat跳轉

Nginx+tomcat實現高併發場景的動靜分離和負載均衡,程序員收藏了

通過proxy_pass配置請求轉發地址。即當訪問localhost的8010端口時,請求會跳轉至localhost的8080端口處。

Nginx+tomcat實現高併發場景的動靜分離和負載均衡,程序員收藏了

動靜分離配置

上面我們直接試了一個小例子,讓nginx進行轉發,即所謂的反向代理。但實際上我們的需求不會是這樣的,我們需要分文件類型來進行過濾,比如jsp直接給tomcat處理,因為nginx並不是servlet容器,沒辦法處理JSP,而html,js,css這些不需要處理的,直接給nginx進行緩存。

這時最主要用的還是location這個元素,並且涉及到一部分正則,但不難,具體配置如下:

Nginx+tomcat實現高併發場景的動靜分離和負載均衡,程序員收藏了

此時再直接輸入localhost:8010,則會報404錯誤了。但是輸入localhost:8010/index.jsp,則一樣可以跳轉至tomcat首頁中。

Nginx+tomcat實現高併發場景的動靜分離和負載均衡,程序員收藏了

負載均衡配置

當一臺服務器出現故障後,我們需要將請求自動轉向另一臺服務器,此種需求該如何配置呢?利用Nginx也是比較方便能夠實現,具體配置如下:

Nginx+tomcat實現高併發場景的動靜分離和負載均衡,程序員收藏了

注意,上面還加上了一個weight屬性,此屬性表示各服務器被訪問到的權重,weight越高訪問到的幾率越高。

其他配置

Nginx+tomcat實現高併發場景的動靜分離和負載均衡,程序員收藏了

關注

感謝閱讀,如果這篇文章幫助了您,歡迎 點贊收藏,關注轉發 喲。您的幫助是我們前行的動力,我們會提供更多有價值的內容給大家... 謝謝!


分享到:


相關文章: