ubuntu+nginx做負載均衡

近期的一個AI項目到了web服務部署階段,由於項目需要對GPU進行實例分配,這裏先從服務入口出發對web服務做個簡單的負載均衡配置。

例如我們啓動了兩個AI Web服務:

服務實例1:127.0.0.1:8090

服務實例2:127.0.0.1:8091

採用nginx對該兩個實例進行簡單的負載均衡,步驟如下:

1、安裝nginx

sudo apt install nginx 

2、查看nginx版本

nginx -V

3、進行業務的nginx配置

#進入nginx配置文件目錄
cd /etc/nginx/conf.d
#創建AI業務配置文件
sudo touch ai.conf
#編輯ai.conf
vi ai.conf
#鍵入以下配置信息
upstream ai{
     #AI服務實例1
     server 127.0.0.1:8090;
     #AI服務實例2
     server 127.0.0.1:8091;
}
server {
     listen 80;
     server_name  127.0.0.8;
      location / {
             proxy_set_header X-Real-IP $remote_addr;
             proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
             proxy_set_header Host $http_host;
             proxy_set_header X-Nginx-Proxy true;
             proxy_pass http://ai;
             proxy_redirect off;
      }

}
#最後保存並退出

4、啓動nginx服務

# 啓動
sudo systemctl start nginx
# 停止
sudo systemctl stop nginx
# 重啓
sudo systemctl restart nginx

啓動後在瀏覽器訪問:127.0.0.1 出現以下頁面說明nginx啓動成功

5、啓動兩個AI服務實例

6、開始測試

通過日誌可以看出服務實例1:8090進行了請求處理。

再次請求下:

這次是服務實例2:8091進行了請求處理,再請求下:

這次回到了服務實例1:8090處理請求,通過測試可以發現nginx轉發是ABABABAB規則,因爲我們沒有設置weight權重,weight權重默認爲1,如果需要修改轉發規則可以詳細瞭解下nginx的配置http://nginx.org/en/docs/

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