CentOS7 Nginx 如何配置負載均衡

2021-10-05 16:54:53 字數 2298 閱讀 8795

所謂負載均衡,單從字面上的意思來理解就可以解釋n臺伺服器平均分擔負載,不會因為某台伺服器負載高宕機和某台伺服器閒置的情況。那麼負載均衡的前提就是要2臺以上伺服器才能實現。

由於沒有伺服器,所以本次測試直接host指定網域名稱,伺服器不夠,我們用nodejs監聽了三個埠(8881,8882,8888)來模擬多台伺服器。nginx監聽80埠作為主伺服器。

;// 終端列印如下資訊

;// 終端列印如下資訊

;// 終端列印如下資訊

console.log(

'server running at '

);測試網域名稱yongle.com

a伺服器監聽80埠(主)

b伺服器監聽8881埠(從)

c伺服器監聽8882埠(從)

d伺服器監聽8888埠(從)

a伺服器做為主伺服器,網域名稱直接解析到a伺服器( 127.0.0.1:80)上,由a伺服器負載均衡到b伺服器( 127.0.0.1:8881)、c伺服器( 127.0.0.1:8882)和d伺服器( 127.0.0.1:8888)上。

a伺服器nginx.conf設定開啟nginx.conf,檔案位置在nginx安裝目錄的conf目錄下。在http段加入以下**

upstream yongle.com 

server

}

儲存重啟nginx即可完成負載均衡

我們把網域名稱解析到a伺服器,然後由a伺服器**到b伺服器c伺服器與d伺服器,那麼a伺服器只做乙個**功能,現在我們讓a伺服器也提供站點服務。

如果新增主伺服器到upstream中,那麼可能會有以下兩種情況發生:

1、主伺服器**到了其它ip上,其它ip伺服器正常處理;

2、主伺服器**到了自己ip上,然後又進到主伺服器分配ip那裡,假如一直分配到本機,則會造成乙個死迴圈。

怎麼解決這個問題呢?因為80埠已經用來監聽負載均衡的處理,那麼本伺服器上就不能再使用80埠來處理yongle.com的訪問請求,必須重新監聽乙個新的埠。於是我們把主伺服器的nginx.conf加入以下一段**:

server 

}

把主伺服器新增到upstream中

upstream yongle.com
到這裡我們就完成了把主伺服器也加入到了負載均衡中。

nginx負載均衡有4種方案配置

1、輪詢

輪詢即round robin,根據nginx配置檔案中的順序,依次把客戶端的web請求分發到不同的後端伺服器上

2、最少連線 least_conn;

web請求會被**到連線數最少的伺服器上。

3、ip位址雜湊 ip_hash;

前述的兩種負載均衡方案中,同一客戶端連續的web請求可能會被分發到不同的後端伺服器進行處理,因此如果涉及到會話session,那麼會話會比較複雜。常見的是基於資料庫的會話持久化。要克服上面的難題,可以使用基於ip位址雜湊的負載均衡方案。這樣的話,同一客戶端連續的web請求都會被分發到同一伺服器進行處理。

4、基於權重 weight

基於權重的負載均衡即weighted load balancing,這種方式下,我們可以配置nginx把請求更多地分發到高配置的後端伺服器上,把相對較少的請求分發到低配伺服器。

CentOS 7 Nginx 控制指令碼

傳送門 2 乾貨 相信看了準備活動,基本上就會了,這個比起下面那個方法實在是簡單多了直接上指令 sudo vi usr lib systemd system nginx.service 輸入下面內容,並儲存 unit description nginx high performance web se...

CentOS7 Nginx基本操作

我初學nginx伺服器配置,有些操作記不住,所以總結一下放一起。根據學習使用的情況,內容會不定期更新。yum安裝nginx的配置檔案目錄 etc nginx 編譯安裝的nginx的配置檔案目錄 usr local nginx conf 無論是如何安裝的nginx,配置檔案的修改方式都是一樣的,只需要...

centos7 nginx 日誌清理

nginx 日誌檔案需要手動清理分割,因此寫個指令碼實現自動化 建立指令碼檔案clear log.shcd usr local nginx sbin vi clear log.sh bin bash 先複製原來的錯誤日誌檔案,請根據自己實際的日誌路徑填寫 cp usr local nginx log...