What?
单台服务器有性能等瓶颈,请求被合理分配到多台server上,以使能够处理更多请求
nginx 集群 lvs keepalived f5
nginx 官方测试并发支承5万并发 阿里开源的tengine 和nginx能够完美兼容
nignx负载均衡机制
- 轮训(默认)
按照配置的服务列表一个个分配
- 缺点
- 同一个用户,不同请求会分配到不同服务器
- 缺点
- 加权负载均衡
对性能不一致的机器 给予不同的权重,是性能好的服务器能够处理更多
- 最少连接数
分配给连接数更少的服务器
- ip-hash
保证会话持久 - 缺点 - 如果针对用户是企业用户,一般都是一条宽带外网ip都是一样的,这样的用户都会被分配到同一个server上,达不到负载均衡的效果
Where?
应用服务器前可以加nignx负载,如果nginx需要负载则需要在nginx前加lvs服务 参考 lvs
Why?
How?
轮训nginx配置
1
2
3
4
5
6
7
8
9
10
11http {
upstream sjcluster{
server sj-node2;
server sj-node3;
}
server {
listen 80;
server_name node2;
location / {
proxy_pass http://sjcluster
}
权重配置
1
2
3
4
5
6
7
8
9
10
11http {
upstream sjcluster{
server sj-node2 weight=3;
server sj-node3;
}
server {
listen 80;
server_name node2;
location / {
proxy_pass http://sjcluster
}
最小连接数配置
1
2
3
4
5
6
7
8
9
10
11
12http {
upstream sjcluster{
least_conn;
server sj-node2;
server sj-node3;
}
server {
listen 80;
server_name node2;
location / {
proxy_pass http://sjcluster
}
ip-hash配置
1
2
3
4
5
6
7
8
9
10
11
12http {
upstream sjcluster{
ip_hash;
server sj-node2 ;
server sj-node3;
}
server {
listen 80;
server_name node2;
location / {
proxy_pass http://sjcluster
}