nginx 负载均衡配置

 

负载均衡的实现有以下4种模式:

 

1)、轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
2)、weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
2)、ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
3)、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
4)、url_hash(第三方)

 

配置如下:

1:打开nginx.cnf文件

在http节点下添加upstream节点:

# 负载均衡的配置
    # Nginx基于连接探测,如果发现后端异常,在单位周期为fail_timeout设置的时间,中达到max_fails次数,
    # 这个周期次数内,如果后端同一个节点不可用,那么接将把节点标记为不可用,并等待下一个周期(同样时常为fail_timeout)再一次去请求,判断是否连接是否成功。
    upstream metaspace.test.com {
        #ip_hash; //ip_hash的配置,直接加一行就可以了,这样只要是同一个ip过来的都会到同一台server上
        #server 10.10.12.245:9000 weight=100000;
        server 127.0.0.1:8090 weight=1 max_fails=3 fail_timeout=10s;
        server 127.0.0.1:8091 weight=1 max_fails=3 fail_timeout=10s;
        server 127.0.0.1:8080 weight=1 max_fails=3 fail_timeout=10s;        
#server 127.0.0.1:8091 weight=1 backup | down; }

  

其中 metaspace.test.com  是自己取的名字,最后会通过这个名字在url里访问的

2: 配置站点server

server {
        listen       80;
        server_name  dev.nginx.test.com;
        # 跳转配置
        location / {
            proxy_pass http://dev.nginx.test.com;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $http_host;
            proxy_redirect off;
            
        }
     
        error_page  500 502 503 504  /50x.html;
        location = /50x.html {
            root html;
        }
    }

  

 主备配置:

upstream dev.nginx.test.com {
   server 127.0.0.1:8091 weight=1;
   server 127.0.0.1:8090 weight=1 backup;
 }

 设置某一个节点为backup,那么一般情况下所有请求都访问server1,当server1挂掉或者忙的的时候才会访问server2

upstream dev.nginx.test.com {
   server 127.0.0.1:8091 weight=1;
   server 127.0.0.1:8090 weight=1 down;
 }

 设置某个节点为down,那么这个server不参与负载

 

posted @ 2022-06-06 10:45  介寒食  阅读(127)  评论(0编辑  收藏  举报