開篇
Nginx 對於攻城獅的我們並不陌生,無論是php的同學還是java的同學,nginx對於我們來說都是必備技能。有了nginx,我們的應用就插上了叢集化,效能可伸縮的翅膀。今天就來實戰調一次nginx 負載均衡兩個tomcat供大家參考用。
當然,用spring boot的或者用spring cloud的同學,也是一樣的道理。nginx用的最多的就是閘道器 gateway前面的負載均衡使用。
另外說明一下,我也蒐羅了很多nginx學習資料,而且是開源網站上的,有需要連結的同學到文章末尾有開源學習資料地址獲取方法。本文一如既往實戰除錯,作為攻城獅學習參考文章,可以收藏、轉發、關注一下。
Nginx負載均衡模式簡介1、輪詢:nginx預設就是輪詢,就是兩個tomcat來回切,一會兒後面有除錯。
2、加權輪詢:跟據配置的權重的大小而分發給不同伺服器不同數量的請求。如果不設定,則預設為1。就是誰的權重大,誰的概率就高一些。一會兒後面有除錯。
3、熱備:例如你有2個tomcat,當一個tomcat掛了,才啟用第二個tomcat給提供服務,一會兒後面有除錯。
4、ip_hash:nginx會讓相同的客戶端ip請求相同的伺服器。
實戰,原理不懂?沒關係,看實戰除錯環境準備:3臺機器,ip地址分別為192.168.1.102-nginx 機器,192.168.1.106-tomcat1機器192.168.1.108-tomcat2機器。安裝nginx和tomcat的步驟就略過了,不會就自己搜吧。為了方便,我把106的tomcat和108的tomcat預設的index.jsp 加上了106 和108字樣,如圖所示。
1、nginx輪詢模式,如圖修改192.168.1.102上的nginx.conf配置,如圖示紅色部分
訪問http://192.168.1.102,然後重新整理你會看到輪詢開始了!!!注意,此處是nginx預設模式,有的同學會遇到負載均衡不生效的情況,不是不生效,是因為你不是新標籤開啟。很多瀏覽器預設情況下重新整理,不會請求頭部header不會改變,所以你重新整理不起效果。必須新標籤開啟。這種情況其實是符合多使用者使用的。不是你一個瀏覽器一個標籤頁刷的!是要新標籤頁才能模仿多使用者請求。訪問機器順序是AB AB AB.....
2、nginx配置加權輪詢,預設的輪詢方式權重都是1,加權就是哪臺機器品質好就可以多接收些請求。例如把106機器的權重改成2,則重新整理的時106出現兩次,108出現一次。也就是出現訪問機器的順序是AAB AAB AAB的順序持續下去。
3、nginx 熱備,關鍵字是 backup,這裡我們把106停了,108是熱備就啟用了。
4、ip_hash 這個比較簡單,只貼配置了,想看效果,自己修改自己的Ip地址。
結語至此nginx負載均衡的幾種常見的模式就除錯完了,nginx作為web伺服器中最常見的負載均衡軟體,在各大網際網路公司都經常使用,所以我也蒐羅了很多nginx學習資料。當然我只蒐羅開源的。最後覺得有用,收藏、關注轉發吧,需要nginx開源學習資料連結的同學私信"nginx"。