nginx设置负载均衡
NGINX设置负载均衡,可以把请求按照自己的想法转发给多个后端服务器。
比如两个服务器配置不同,可以按照3:1转发给2个服务器。
后端服务器也可以根据接收到的信息进行处理。
前端服务器.
upstream backend {
server 192.92.79.64 weight=3; # 第一个后端服务器,权重为 3
server 192.92.79.65 weight=1; # 第二个后端服务器,权重为 1
}
# 服务器配置
server {
listen 80; # 监听80端口
server_name www.cn; # 配置服务器名称
location / {
# 转发请求到 upstream 服务器组
proxy_pass http://backend;
# 设置头部信息以便后端服务器能够识别真实的请求信息
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_set_header X-Forwarded-Proto $scheme;
}
}
后端服务器
根据接受传来的信息,可以对ip进行限制,比如一个ip一秒内只接受3个请求。
http {
limit_req_zone $binary_remote_addr zone=mylimit:10m rate=3r/s;//使用10M内存存储ip信息,限制一秒3个请求
limit_req_zone $server_name zone=serlimit:10m rate=500r/s;//使用10M内存存储主机信息,限制一秒500请求
limit_req_status 444;//超出返回请求头
server {
set_real_ip_from 12.36.176.29;
real_ip_header X-Forwarded-For;
location / {
limit_req zone=mylimit burst=5 nodelay;//启用ip限制,允许突发超出5个请求
limit_req zone=serlimit nodelay;//启用主机限制
}
}
}