nginx 负载均衡配置
负载均衡的实现有以下4种模式:
1)、轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
2)、weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
2)、ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
3)、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
4)、url_hash(第三方)
配置如下:
1:打开nginx.cnf文件
在http节点下添加upstream节点:
1 2 3 4 5 6 7 8 9 10 | # 负载均衡的配置 # 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; <br> #server 127.0 . 0.1 : 8091 weight= 1 backup | down; } |
其中 metaspace.test.com 是自己取的名字,最后会通过这个名字在url里访问的
2: 配置站点server
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 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; } } |
主备配置:
1 2 3 4 | 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
1 2 3 4 | upstream dev.nginx.test.com { server 127.0 . 0.1 : 8091 weight= 1 ; server 127.0 . 0.1 : 8090 weight= 1 down; } |
设置某个节点为down,那么这个server不参与负载
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)