不需要關閉防火牆來配置nginx實現負載均衡

2021-08-28 23:49:33 字數 1919 閱讀 3470

企業伺服器隨著所部署專案的逐漸增多會面臨高併發的問題,這時候一般有兩個方向的處理策略:1、硬體;2、軟體,本著減輕成本和能不浪費就不浪費的原則,今天重點介紹第二點(軟體):使用nginx實現負載均衡。

今天同事在我原先部署的基礎上,增加了幾個專案,遇到了防火牆不關不能訪問的問題,我這裡重點講解下。

首先講點概念性的東西,不感興趣可pass

一、負載均衡的作用

1、**功能

按照一定的演算法【權重、輪詢】,將客戶端請求**到不同應用伺服器上,減輕單個伺服器壓力,提高系統併發量。

2、故障移除

通過心跳檢測的方式,判斷應用伺服器當前是否可以正常工作,如果伺服器期宕掉,自動將請求傳送到其他應用伺服器。

3、恢復新增

如檢測到發生故障的應用伺服器恢復工作,自動將其新增到處理使用者請求隊伍中。

二、nginx實現負載均衡

同樣使用兩個tomcat模擬兩台應用伺服器,埠號分別為8080 和8081

1、nginx的負載分發策略

nginx 的 upstream目前支援的分配演算法: 

1)、輪詢 ——1:1 輪流處理請求(預設)

每個請求按時間順序逐一分配到不同的應用伺服器,如果應用伺服器down掉,自動剔除,剩下的繼續輪詢。 

2)、權重 ——you can you up

通過配置權重,指定輪詢機率,權重和訪問比率成正比,用於應用伺服器效能不均的情況。 

3)、ip_雜湊演算法

每個請求按訪問ip的hash結果分配,這樣每個訪客固定訪問乙個應用伺服器,可以解決session共享的問題。 

2、配置nginx的負載均衡與分發策略

通過在upstream引數中新增的應用伺服器ip後新增指定引數即可實現

3、nginx其他配置

1)down

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

2)weight

預設為1.weight越大,負載的權重就越大。

3)max_fails

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

4)fail_timeout

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

5)backup

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

三、使用nginx的高可用 

除了要實現**的高可用,也就是提供n多台伺服器用於發布相同的服務,新增負載均衡伺服器分發請求以保證在高併發下各台伺服器能相對飽和的處理請求。同樣,負載均衡伺服器也需要高可用,以防如果負載均衡伺服器掛掉了,後面的應用伺服器也紊亂無法工作。

實現高可用的方案:新增冗餘。新增n臺nginx伺服器以避免發生上述單點故障。具體方案詳見下文:keepalive+nginx實現負載均衡高可用

接下來直接講解如何配置

主要分為兩塊: upstream 與 server  (只需要在conf配置檔案中這麼設定就行)

例項:

upstream furnace.e-plant.cn 

server

}

我同事就是忽略upstream的作用了,並沒有用到分配的功能,這裡還可以加入多**的權重配置,這次不詳講哈

覺得辛苦就掃一掃: 

linux關閉防火牆或者修改防火牆配置的命令

開啟 chkconfig iptables on 關閉 chkconfig iptables off 開啟 service iptables start 關閉 service iptables stop vi etc sysconfig iptables a rh firewall 1 input ...

CentOS Linux防火牆配置及關閉

centos 配置防火牆操作例項 啟 停 開 閉埠 注 防火牆的基本操作命令 查詢防火牆狀態 root localhost service iptables status 回車 停止防火牆 root localhost service iptables stop 回車 啟動防火牆 root loca...

CentOS Linux防火牆配置及關閉

centos 配置防火牆操作例項 啟 停 開 閉埠 注 防火牆的基本操作命令 查詢防火牆狀態 root localhost service iptables status 回車 停止防火牆 root localhost service iptables stop 回車 啟動防火牆 root loca...