nginx负载均衡各种场景下的应用

nginx的upstream默认是以轮询的方式实现负载均衡,这种方式中,每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
在实际应用过程中,根据实际情况选择合适的负载均衡方案来实现既定的目标。

基本用法

通过预定义一组后端可用服务器,然后在定义的server块中通过转发到该组服务器,来实现负载均衡。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
upstream backend {
//配置nginx的负载均衡策略,可选值:轮询、ip哈希、权重三种
server example1.com;
server example2.com;
server example3.com;
}

server {
listen 80;
server_name example.com;

location / {
proxy_pass http://backend;
}
}

后端session共享的使用场景

在这种场景下可以使用轮询、权重2种方式负载均衡每次请求。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
upstream backend {
//配置nginx的负载均衡策略,可选值:轮询、权重两种
server example1.com;
server example2.com;
server example3.com;
}

server {
listen 80;
server_name example.com

location / {
proxy_pass http://backend;
}
}

后端session不共享的使用场景

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
upstream backend {
//配置nginx的负载均衡策略,可选值:ip哈希
server example1.com;
server example2.com;
server example3.com;
ip_hash;
}

server {
listen 80;
server_name example.com

location / {
proxy_pass http://backend;
}
}
文章目录
  1. 1. 基本用法
  2. 2. 后端session共享的使用场景
  3. 3. 后端session不共享的使用场景