nginx+tomcat 實現負載均衡部署

nginx是一個高性能的HTTP和反向代理服務器,同時也是一個IMAP/POP3/SMTP 代理服務器。它主要有以下優點:

  1. 高併發連接:
    官方測試能夠支撐5萬併發連接,在實際生產環境中跑到2~3萬併發連接數。
  2. 內存消耗少:
    在3萬併發連接下,開啓的10個Nginx 進程才消耗150M內(15M*10=150M)。
  3. 配置文件非常簡單:
    風格跟程序一樣通俗易懂。
  4. 成本低廉:
    Nginx爲開源軟件,可以免費使用。而購買F5 BIG-IP、NetScaler等硬件負載均衡交換機則需要十多萬至幾十萬人民幣。
  5. 支持Rewrite重寫規則:
    能夠根據域名、URL的不同,將 HTTP 請求分到不同的後端服務器羣組。
  6. 內置的健康檢查功能:
    如果 Nginx Proxy 後端的某臺 Web 服務器宕機了,不會影響前端訪問。
  7. 節省帶寬:
    支持 GZIP 壓縮,可以添加瀏覽器本地緩存的 Header 頭。
  8. 穩定性高:
    用於反向代理,宕機的概率微乎其微

由於nginx的性能很好,因此國內很多大公司都在使用,最主要的原因也是nginx是開源免費的。除了上面描述的一系列功能,項目中主要用nginx來實現以下三個功能:

  • 動靜分離
  • 反向代理
  • 負載均衡

負載均衡
在這裏插入圖片描述
負載均衡主要有以下特點:

  • 分散後臺服務器的負載
  • 自動去掉後臺宕機的服務器
  • 緩存後臺請求內容,加速請求速度

nginx負載均衡主要有以下五種策略:

  • 輪詢(默認)
    每個請求按時間順序逐一分配到不同的後端服務器,如果後端服務器down掉,能自動剔除。
  • weight
    指定輪詢機率,weight和訪問比率成正比,用於後端服務器性能不均的情況。
  • ip_hash
    每個請求按訪問ip的hash結果分配,這樣每個訪客固定訪問一個後端服務器,可以解決session的問題。
  • fair(第三方)
    按後端服務器的響應時間來分配請求,響應時間短的優先分配。
  • url_hash(第三方)
    按訪問url的hash結果來分配請求,使每個url定向到同一個後端服務器,後端服務器爲緩存時比較有效。

策略簡單理解就是nginx 依據什麼規則進行轉發到各個服務器上面

環境搭建:
在這裏插入圖片描述

2個tomcat都啓動起來,tomcat相關知識這裏不進行贅述

修改tomcat的title避免啓動多了不知道哪個是哪個

我們可以去tomcat服務器中找打bin/Catalina.bat(Windows環境下,linux下找到.sh文件即可)文件,依次修改TITLE選項爲app01、app02、app03:
在這裏插入圖片描述
主要說下nginx的配置
主要是在config/nginx.config文件中:
使用upstream來配置tomcat集羣,其主要配置如下,兩臺服務器,在最後一行可以指定負載均衡的策略,如果什麼也不寫默認輪詢策略,這裏我們使用輪詢策略,主要是方便觀察:
在這裏插入圖片描述
這裏我配置了2個
在這裏插入圖片描述
觀察效果
在這裏插入圖片描述
在這裏插入圖片描述
上面2個頁面一直替換着顯示,證明訪問不通的tomcat

在這裏插入圖片描述
但是這個帶有session的系統一直進不去,也很正常,在tomcat1裏面登錄後,再訪問進入tomcat2裏面了 session沒有需要重新登錄,所以就一直再這個地方, 後面再學習session共享的問題吧

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章