Nginx相关配置
nginx命令
nginx -t 检查配置语法
nginx -s reload 重新加载
nginx 启动nginx
upstream模块
upstream是一组服务器的集合,nginx的负载均衡依赖于该模块,所支持的代理方式有:
- proxy_pass
- fastcgi_pass
- memcached_pass
upstream模块相关说明 - upstream模块应放于nginx.conf配置的http{}标签内
- upstream模块默认的算法是wrr(权重轮询weighted round=robin)
- upstream模块内部部分说明
配置 | 解释
- | -
server 10.0.0.8:80 | 负载均衡后面的RS配置,可以是IP或域名,端口不写,默认是80端口。高并发场景IP要换成域名,通过DNS做负载均衡
weight | 权重,默认是1。权重大接受的请求越多
max_fails=2 | 最大尝试失败的次数,默认为1,0表示禁止失败尝试
backup | 热备配置(RS节点的高可用),当前面激活的RS都失败后会自动启动热备RS
fail_timeout=20s | 失败超时时间,默认是10s。
down | 这标志着服务器永远不可用,这个参数一直配合ip_hash使用
upstream web_name {
// 使用iphash的方式,对于同一客户端(IP),使用将请求转发到一台服务器上
// 如果使用了ip_hash,就不能使用热备
ip_hash;
// server 域名/IP:端口 weight=权重
server 10.0.0.9:80 weight=5;
server 10.0.0.10:80 weight=5;
// 服务器热备 如果服务器9跟10都挂了 就启动11
server 10.0.0.11:80 weight=5 backup;
}
server {
listen 80;
server_name www.etiantian.com;
location / {
proxy_pass http://web_name;
}
}
upstream模块调度算法
rr轮询(默认)
按客户端请求顺序把客户端的请求逐一分配到不同的后端服务器,如果后端服务器宕机(默认情况下只检测80端口,如果后端报502,404,403,503,还是会直接返回给用户),宕机服务器会被自动剔除。
weight(权重)
在轮询算法的基础上加权重,权重轮询和访问成正比,权重大,请求多
ip_hash
同一个客户端(ip)的请求会分配给同一个服务器
fair的动态算法(第三方)
按照后端服务器RS的响应时间来分配请求,响应时间短,优先分配
url_hash(第三方)
按访问url的hash结果来分配请求服务器,让每一个url定位同一个后端服务器

浙公网安备 33010602011771号