上篇文章Linux通過nginx反向代理net core項目中已經在伺服器A上使用nginx代理了netcore項目,這裡再增加一台伺服器,叫做B伺服器,部署同樣的代碼(我們這裡對某個頁面稍加改動,主要便于看負載的效果),使用nginx實作負載均衡。
一、B伺服器部署netcore項目
部署的過程可以參考Linux-Centos8.3 部署net core項目。這裡簡單的說下:
上傳釋出的netcore項目,如何上傳可以參考:Linux遠端連接配接及上傳檔案
!!!!!重點說明:為了便于效果示範,這裡稍加修改下項目,将其中頁面中的“文檔”兩個字改為“文檔(伺服器B)”

啟動netcore項目:
dotnet HyWebSocketServer.dll
我們伺服器B上部署的項目,看下效果:
B伺服器上的項目啟動後,開始在A伺服器上配置nginx了
二、Nginx負載均衡配置
如果想了解負載均衡的知識體系可以參考另一篇部落格:負載均衡
通過Xshell打開伺服器A
進入nginx的配置目錄:
cd /usr/local/nginx/conf
對檔案進行編輯:
vim nginx.conf
使用 nginx 中的 upstream子產品 來實作nginx将跨越單機的限制,完成網絡資料的接收、處理和轉發。我們主要使用提到的轉發功能進行排程分發。定義的 upstream 子產品名稱是 wsServer,這裡配置了兩個IP端口,到時候nginx就往這兩個伺服器上分發。修改一下配置,在如下圖的server的平級添加如下的代碼:
upstream wsServer{
server localhost:9000 ;
server 伺服器B的公網IP:9000;
}
server ip:port後面可以加參數,比如:
- down 表示目前的server臨時不參與負載.
- weight 是權重,weight越大,負載的權重就越大。
- backup: 其他全部的非backup機器當機或者忙的時候,請求backup機器。是以這台機器壓力會最輕
我們這裡使用nginx預設的政策,即輪詢法。
修改完成,輸入:wq退出并儲存,最後檢查并重新開機nginx
/usr/local/nginx/sbin/nginx -t
/usr/local/nginx/sbin/nginx -s reload
三、負載的效果展示
多次發送請求會出現下面的響應:
看到上面兩個截圖,就說明配置成功了。