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定位同一个后端服务器

posted @ 2020-09-23 23:15  Jin同学  阅读(101)  评论(0)    收藏  举报