nginx的upstream默认是以轮询的方式实现负载均衡,这种方式中,每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
在实际应用过程中,根据实际情况选择合适的负载均衡方案来实现既定的目标。
基本用法
通过预定义一组后端可用服务器,然后在定义的server块中通过转发到该组服务器,来实现负载均衡。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| upstream backend { server example1.com; server example2.com; server example3.com; }
server { listen 80; server_name example.com;
location / { proxy_pass http: } }
|
后端session共享的使用场景
在这种场景下可以使用轮询、权重2种方式负载均衡每次请求。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| upstream backend { server example1.com; server example2.com; server example3.com; }
server { listen 80; server_name example.com
location / { proxy_pass http: } }
|
后端session不共享的使用场景
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| upstream backend { server example1.com; server example2.com; server example3.com; ip_hash; }
server { listen 80; server_name example.com
location / { proxy_pass http: } }
|