Monkey

个人站

The master has failed more times than the beginner has tried


负载均衡

  • Http 重定向

HTTP 请求进行转移,在 Web 开发中我们经常会用它来完成自动跳转,比如 用户登录成功后跳转到相应的管理页面。 这种重定向完全由 HTTP 定义 ,并且由 HTTP 代理和Web 服务器 共同实现。

很简单,当 HTTP 代理(比如浏览器)向Web服务器请求某个URL后,Web 服务器可以通过 HTTP 响应头信息中的Location 标记来返回一个新的URL,这意味着HTTP代理需要继续请求这个新的URL ,这便完成了自动跳转。 当然,如果你自己写了一个 HTTP 代理,也可以不支持重定向,也就是对于Web 服务器返回的 Location 标记视而不见,虽然这可能不符合 HTTP 标准,但这完全取决于你的应用需要。 也正是因为HTTP 重定向具备了请求转移和自动跳转的本领,所以除了满足应用程序需要的各种自动跳转之外,它还可以用于实现 负载均衡,以达到Web 扩展的目的。

  • DNS 负载均衡

DNS负责提供域名解析服务,当我们访问某个站点时,实际上首先需要通过该站点域名的 DNS服务器 来获取域名指向的 IP地址,在这一过程中,DNS服务器 完成了域名到IP 地址的映射,同样,这种映射也可以是一对多的,这时候,DNS 服务器便充当了负载均衡调度器(也称均衡器),它就像前面提到的重定向转移策略一样,将用户的请求分散到多台服务器上,但是它的实现机制完全不同。

  • 反向代理负载均衡

反向代理服务器的核心工作便是转发 HTTP 请求,因此它工作在 HTTP 层面,也就是 TCP 七层结构中的 应用层(第七层),所以基于反向代理的负载均衡也称为 七层负载均衡 ,实现它并不困难,目前几乎所有主流的 Web 服务器都热衷于支持基于反向代理的负载均衡,随后我们将进行Nginx反向代理负载均衡的实验

  • IP 负载均衡

事实上,在 数据链路层(第二层)网络层(第三层)以及 传输层(四层) 都可以实现不同机制的负载均衡,但有所不同的是,这些负载均衡调度器的工作必须由Linux 内核来完成,因为我们希望网络数据包在从内核缓冲区进入进程用户地址空间之前,尽早地被转发到其他实际服务器上,没错,Linux 内核当然可以办得到,位于内核的 NetfilterIPVS 可以解决问题,而用户空间的应用程序对此却束手无策。 另一方面,也正是因为可以将调度器工作在 应用层以下,这些负载均衡系统可以支持更多的网络服务协议比如FTP 、SMTP 、DNS ,以及流媒体和Vo I P 等应用

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦