正向代理和反向代理
代理其实就是一个中介,A和B本来可以直连,中间插入一个C,C就是中介。
1 正向代理
正向代理类似一个跳板机,代理访问外部资源,比如国内范文资源。直接访问访问不到,我们可以通过正向代理服务器将请求发到代理服务器上,这样有代理服务器区访问返回数据。
正向代理的用途:
- 访问原来无法访问的资源
- 做缓存、加速访问速度
- 对客户端访问授权、上网认证‘
- 代理可以记录用户访问记录,对外隐藏用户信息
2 反向代理
反向代理(Reverse Proxy)实际运行方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。
Nginx负载均衡
3 负载均衡算法
3.1 源地址哈希法
根据获取客户端的IP地址,通过哈希函数计算得到一个数值,用该数值对服务器列表的大小进行取模运算,得到的结果便是客户端访问服务器的序号。采用源地址哈希法进行负载均衡。同一IP地址的客户端,当后端服务器列表不变时,它每次都会映射到用一台后端服务器进行访问。
upstream nodes {
ip_hash;
server 192.168.10.1:8668;
server 192.168.10.2:8668;
}
3.2 轮询法
将请求按顺序轮流地分配到后端服务器,它均衡地对待后端的每一台服务器,而不关心服务器实际的连接数和当前的系统负载。
upstream nodes {
server 192.168.10.1:8668;
server 192.168.10.2:8668;
}
3.3 随机法
通过系统的随机算法,根据后端服务器的列表的大小值来随机选取其中的一台服务器进行访问。
3.4 加权轮询法
不同的后端服务器可能机器的配置和当前系统的负载并不相同,因此它们的抗压能力也不相同。给配置高、负载低的机器配置更高的权重,让其处理更多的请求;而配置低、负载高的机器,给其分配较低的权重,降低其系统负载。
upstream nodes {
server 192.168.10.1:8668 weight=5;
server 192.168.10.2:8668 weight=10;
}
3.5 加权随机法
与加权轮询一样,加权随机法也根据后端机器的配置,系统的负载分配不同的权重。不同的是,它是按照权重随机请求后端服务器,而非排序。
最小连接数法
3.6 upstream中常用的配置项:
- down:表示当前的server不参与负载均衡
- weight:默认为1,weight越大,负载的权重就越大。
- max_fails:请求失败的次数,默认为1
- backup:其他全部的非backup机器down或者忙的时候,请求backup机器。所以这台机器的压力最轻