Nginx總結(六)nginx實現負載均衡

  • 2019 年 10 月 3 日
  • 筆記

前面講了如何配置Nginx虛擬主機,大家可以去這裡看看nginx系列文章:https://www.cnblogs.com/zhangweizhong/category/1529997.html

今天要說的是如何配置nginx和tomcat實現反向代理。

需要說明的是:由於本文章是nginx系列文章中的一篇,文章裡面很多其他的配置,可能前面的文章已經說講過,然後後續就沒有在介紹,如果出現有些配置沒有講,大家可能需要去看看前面的文章。

 

什麼是負載均衡

         負載均衡是建立在現有網路結構之上,它提供了一種廉價有效透明的方法擴展網路設備和伺服器的頻寬、增加吞吐量、加強網路數據處理能力、提高網路的靈活性和可用性。

         負載均衡,英文名稱為Load Balance,其意思就是分攤到多個操作單元上進行執行,例如Web伺服器、FTP伺服器、企業關鍵應用伺服器和其它關鍵任務伺服器等,從而共同完成工作任務。

 

Nginx實現負載均衡

i. 需求

         nginx作為負載均衡伺服器,用戶請求先到達nginx,再由nginx根據負載配置將請求轉發至 tomcat伺服器。

         nginx負載均衡伺服器:192.168.78.132

         tomcat1伺服器:192.168.78.134

         tomcat2伺服器:192.168.78.135

 

ii. 環境準備

  1. 兩台 tomcat 伺服器,我這裡使用的是使用apache-tomcat-7.0.57版本,在192.168.78.134和192.168.78.135虛擬機上啟動tomcat。

  2. Nginx 伺服器,這個之前安裝過,ip地址是:192.168.78.132

  3. 修改兩個tomcat下的webapps/ROOT/index.jsp的內容,使用tomcat1和tomcat2兩個服務首頁顯示不同的內容。

  4. 通過host文件指定aaa.test.com的域名解析,對應192.168.78.132虛擬機:修改window的hosts文件:(C:WindowsSystem32driversetc)

192.168.78.132 aaa.test.com

 

iii. 配置Nginx

根據上邊的需求在nginx.conf文件中的http節點添加如下配置:

   upstream tomcat_server_pool{            server 192.168.101.5:8080 weight=10;            server 192.168.101.6:8080 weight=10;        }          server {            listen 80;            server_name aaa.test.com;            location / {                     proxy_pass http://tomcat_server_pool;                     index index.jsp index.html index.htm;            }        }

相關參數說明:

down:表示單前的server暫時不參與負載

weight :默認為1.weight越大,負載的權重就越大。

max_fails:允許請求失敗的次數默認為1.當超過最大次數時,返回proxy_next_upstream 模組定義的錯誤

fail_timeout:max_fails 次失敗後,暫停的時間。

backup:其它所有的非backup機器down或者忙的時候,請求backup機器。所以這台機器壓力會最輕。


iv.  測試
 

請求aaa.test.com,我們會發現,nginx會將請求轉發到各個tomcat伺服器上。

 

最後

以上就將Nginx負載均衡介紹完了。後面將會介紹Nginx的高可用。