反向代理:反向代理通常用于外网访问内网,客户端发送请求,到代理服务器,代理服务器通过代理服务器域名将请求转发到目的服务器
反向代理:代理的是服务器,反向代理通常结合负载均衡使用
负载均衡:主要是解决单个服务器节点流量过大,服务器响应过慢的问题
nginx负载均衡策略:
轮循(round-robin)默认策略
根据请求次数,将每个请求均匀分配到每台服务器,如果后端服务器宕机,自动剔除。
权重(Weight)
把请求更多的分配到高配置的后端服务器上,默认每个服务器的权重都是1。
ip_hash
同一客户端的Web请求被分发到同一个后端服务器进行处理,使用该策略可以有效的避免用户Session失效的问题。该策略可以连续产生1045个互异的value,经过20次hash仍然找不到可用的机器时,算法会退化成轮循。
最少连接(last_conn)
Web请求会被转发到连接数最少的服务器上。
参数说明
weight
启用权重策略,总数按照10进行计算,如果分配为3,则表示所有连接中的30%分配给该服务器,默认值为1;
max_fail/fail_time
某台服务器允许请求失败的次数,超过最大数后,在fail_timeout时间内,新的请求不会分配给这台机器,如果设置为0,反向代理服务器则会将这台服务器设置为永久无效状态。fail_time默认为10秒;
backup
将某台服务器设定为备用机,当列表中的其他服务器都不可用时,启用备用机
down
将某台服务器设定为不可用状态
max_conns
限制分配给某台服务器的最大连接数,超过这个数量,反向代理服务器将不会分配新的连接,默认为0,表示不限制;
http{
upstream server_group_name{//负载均衡
# ip_hash; # 启用ip_hash策略
# last_conn; #启用最少连接策略
server ip or domain:port
weight=2
max_fails=3
fail_timeout=15
max_conns=1000; # 使用weight设置权重为20%
server ip or domain:port backup;# 设置为备用机,当其他服务器全部宕机时,启用备用服务器
server ip or domain:port down;# 设置服务器为不可用状态
}
server{//反向代理
listen 80;//监听80端口
server_name: www.baidu.com *.baidu.com//域名,多个域名以空格分割
location/
{proxy_pass http://server_group_name;} //代理的服务器地址
}
}
location /path{
proxy_pass http://server_group_name;
} //代理的服务器地址
代理路径后没有/,代理地址会自动拼接/path
引用:https://www.jianshu.com/p/5026ab611d4e