Nginx-LoadBalance

  • Carter Ho
  • 7 Minutes
  • 2024年10月2日

搬移Signalr專案到GCP時得知GCP的LB不支持長連接對象需要ip hash配置,需要自行建立一個LB代理處理,紀錄一下Nginx LB Method

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
user  nginx;
## 系統自行配置可使用的CPU
worker_processes auto;

events {
## 單一Process同時間可以處理的連線數,跟RAM還有Process最大可以開啟檔案有關
worker_connections 2048;
}

## 目標LB群組裡面監聽的URL跟PORT
upstream lb-backend {
server backend:9001;
server backend:9001;
}

## 入口監聽的PORT跟拜訪目標LB群組的對象
server {
listen 8080;

location / {
proxy_pass http://lb-backend;
}
}
1
2
3
4
upstream lb-backend {
server backend:9001;
server backend:9001;
}
1
2
3
4
5
upstream lb-backend {
least_conn;
server backend:9001;
server backend:9001;
}
1
2
3
4
5
upstream lb-backend {
ip_hash;
server backend:9001;
server backend:9001;
}
1
2
3
4
5
upstream lb-backend {
hash {變數} consostent;
server backend:9001;
server backend:9001;
}
1
2
3
4
5
upstream lb-backend {
least_time {func};
server backend:9001;
server backend:9001;
}
1
2
3
4
5
upstream lb-backend {
random {數量} {func};
server backend:9001;
server backend:9001;
}

參考資料

範例專案