nginx反向代理

反向代理:反向代理通常用于外网访问内网,客户端发送请求,到代理服务器,代理服务器通过代理服务器域名将请求转发到目的服务器

反向代理:代理的是服务器,反向代理通常结合负载均衡使用

负载均衡:主要是解决单个服务器节点流量过大,服务器响应过慢的问题


反向代理示意图

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;} //代理的服务器地址

}

}


session失效问题解决方案

location /path{

proxy_pass http://server_group_name;

} //代理的服务器地址

代理路径后没有/,代理地址会自动拼接/path

引用:https://www.jianshu.com/p/5026ab611d4e

你可能感兴趣的:(nginx反向代理)