nginx.conf的配置:
location / {
proxy_pass http://web;
proxy_redirect default;
#proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504; #当nginx接收后端服务器返回proxy_next_upstream参数定义的状态码时,会将这个请求转发给正常工作的后端服务器,例如:500、502、503、504、此参数可以提升用户的访问体验
proxy_connect_timeout 1; #//单个服务器连接超时(宕机后响应时间)
proxy_read_timeout 5;#连接成功后_等候后端服务器响应时间_其实已经进入后端的排队之中等候处理(也可以说是后端服务器处理请求的时间)
proxy_send_timeout 5;#后端服务器数据回传时间_就是在规定时间之内后端服务器必须传完所有的数据
}
upstream web{
# ip_hash; #能够将某个ip 的请求定向到同一台后端web机器中,这样一来这个ip 下的客户端和某个后端 web机器就能建立起稳固的session(注意当调度算法为ip_hash时,后端服务器在负载均衡调度中的状态不能是weight和backup,也就是说这两个参数不能配置上去)
server 127.0.0.1:81 weight=1 max_fails=3 fail_timeout=5s;
server 127.0.0.1:82 weight=2 max_fails=3 fail_timeout=5s;
server 127.0.0.1:83 backup; #这条记录83这个端口服务是备用服务器,专门为了应对其他服务器宕机等异常准备的
server 127.0.0.1:84 down;#表示单前的server暂时不参与负载.
}
ip_hash:
机制能够让某一客户机在相当长的一段时间内只访问固定的后端的某台真实的web服务器,这样会话就会得以保持,在网站页面进行login的时候就不会在后面的web服务器之间跳来跳去了,也不会出现登录一次的网站又提醒重新登录的情况.
弊端就是会导致后方某个节点负载过大,但是在不会session共享技术的情况下,可以先用此方法代替一下
weight:
用于比如服务器一批性能好一批性能不好,性能好的就多分担请求(值越大),性能差的就少分担请求(值越小)
max_fails:
(1)作用是后端节点负载高或者网络有点不稳定抖动的情况,可能会出现负载均衡服务器抛送请求失败的情况,如果抛送不过去就会给下面的节点,设置上此参数后,就定义了一个失败次数,抛送3次,如果3次都不行就往下面一个节点抛送请求!
(2)对用户体验不好,在请求的时候用户看到的网页会卡一会,才会出现网页内容
企业场景:京东2~3次,蓝汛10次,根据业务需求配置
fail_timeout:
作用是抛送3次请求都失败了,可能服务器出现问题了,配置上fail_timeout参数后设置一个超时时间,抛送3次失败就等xx秒后再次抛送请求,如果还是抛送失败继续等待xx秒后继续抛送!
down:
表示单前的server暂时不参与负载.
子服务器 nginx限制最大并发连接数和请求数
server {
…………………….
limit_conn one 100; # 用来限制单位时间内的请求数,即速率限制,采用的漏桶算法 "leaky bucket" 100表示最大并发连接数100
limit_conn perserver 1000; # 用来限制同一时间连接数,即并发限制 1000表示该服务提供的总连接数不得超过1000,超过请求的会被拒绝
………………….
}
原文:https://www.cnblogs.com/chenday/p/12680713.html