负载均衡

几种负载均衡算法

算法 解释
加权轮训 根据用户自定义权重,来挑选 worker 进程处理请求
fair 只能判断各个worker的繁忙程度,选择压力最小的
轮训 随机挑选一个worker进程处理请求

server配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
server {
server {
listen 8001;                       # 该虚拟主机监听的端口
server_name 127.0.0.1:8001;    # 监听的域名和上一行设置的端口

upstream 127.0.0.1 {
ip_hash; # 轮训算法

# 所有供给负载均衡的机器的ip与端口    
# weight 为权重值,数字越大权重越大
server 127.0.0.1:32775  weight=1;  
server 127.0.0.1:32776  weight=5;
server 127.0.0.1:32777  weight=4;                          
}
}

反向代理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
server {
listen 80;
server_name 127.0.0.1;
location / { 

# 携带Header
# 设置主机头和客户端真实地址,以便服务器获取客户端真实IP ,
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

# 禁用缓存
proxy_buffering off;

# 代理对象可以是 http、https域名或IP和端口
proxy_pass http://domain.xxx;
}
}