反向代理与负载均衡

正反向代理

首先说一下正向代理

A虽然知道C的地址,但不能直接访问到C,所以A通过B(告诉B我要访问C的什么东西),然后B访问C把结果取出来之后返回给A。这就和VPN的效果是一样的。这是一个间接找到结果的办法。

那么什么是反向代理呢?

A不知道C的地址,只知道B的地址,然后A访问B,告诉B他需要什么东西,然后B查询内部网络后发现A要的东西在C上,就把请求转发到C上,C处理之后把结果返回给B,然后B再给A。

反向代理有什么好处呢?

  • 多选择性,灵活,没必须要指定固定的主机

  • 负载均衡

那么什么是负载均衡呢?

负载均衡

这里以nginx为例


image.png

通过一个 nginx 隐藏后端服务,请求打到 nginx 上后, nginx 再将请求转发到后端服务,我们可以通过请求的内容与特性转发到不同的主机上,也可以根据每个主机所能支持的并发量合理分配,从而达到负载的均衡。

主要以下几种方法:

  • 平均轮询法:依次分配
  • 加权轮询法:按照服务器能力依次分配
  • 加权随机法:按照服务器能力加权随机
  • 最小连接数:谁业务最少,接下来的请求就分配给谁
  • 源地址 hash:某ip请求第一次用了哪个服务器以后都用这个服务器 第三方负载策略
  • fair:根据服务器的响应时间来分配请求,响应时间短的优先分配,即负载压力小的优先会分配。
  • url_hash:按请求url的hash结果来分配请求,使每个url定向到同一个后端服务器,服务器做缓存时比较有效

你可能感兴趣的:(反向代理与负载均衡)