负载均衡

负载均衡

代理基础概念:

  • 正向代理,由客户端来使用,代理的近端为用户,对网站服务来讲代理才是直面的用户,数据流从客户端到服务
  • 反向代理,由网站服务使用,代理的近端为网站,对于客户端来讲代理才是直面的服务,数据流从服务到客户端。反向代理能提升后端服务的安全性。

几种负载均衡方案

  • DNS负载均衡
    实现:给域名添加多天A记录(需域名服务商支持)
    优势:简单快捷,性能极高,没有资源耗费
    缺点:权重不可设定、没有故障切换、服务变动后浏览器在内的dns缓存生效问题nginx

  • 七层负载均衡
    实现:工做在应用层,包括 nginxHAProxyhttp反向代理
    优势:故障切换、后端集群高可用
    缺点:代理自身的单点问题后端

  • 四层负载均衡(IP负载均衡)
    实现:工做在网络层/传输层,基于IP/内容请求分发,包括 lvs
    优势:故障切换、高性能、高可用,比七层负载均衡性能更高
    缺点:搭建复杂浏览器

  • HTTP重定向负载均衡
    实现:302跳转等,根据请求来源调度到对应服务器,可实现为城市分站的负载均衡策略
    优势:实现简单
    缺点:url变更、体验较差缓存

  • 硬件负载均衡
    实现:四/七层负载均衡硬件设备
    优势:高性能、高可靠
    缺点:价格昂贵安全

基于nginx反向代理的负载均衡方案配置

http节区下添加以下配置服务器

proxy_connect_timeout 30;  #代理链接服务的超时
proxy_read_timeout 60;  #代理等待服务的超时
proxy_send_timeout 30;  #代理接收数据传输的超时

proxy_buffer_size 64k;  #代理缓冲区大小
proxy_buffers 4 64k;  #代理的缓冲区个数及最大值
proxy_busy_buffers_size 128k;  #代理在高压时段可申请的最大缓冲区大小
proxy_temp_file_write_size 256k;  #代理的临时写文件大小

# 服务集群配置
# 某台服务器响应失败则自动故障切换到另外一台
upstream service_cluster1  #命名集群
{
    # 权重根据具体服务器的资源状况设定
    server 192.168.0.100:80 weight=1 max_fails=2 fail_timeout=30s;
    server 192.168.0.101:80 weight=2 max_fails=2 fail_timeout=30s;
}

# 虚拟主机配置
server
{
    server_name www.site.com;

    # 将全部请求反向代理到service_cluster1服务集群
    location /
    {
        proxy_pass http://service_cluster1;

        proxy_buffering off;  # 禁用缓存,提升并发性能
        
        # 客户端IP透明通过代理服务器传递给后端Web服务器
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        # 客户端请求主机名透明通过代理服务器传递给后端Web服务器
        proxy_set_header Host $host;
    }
}
相关文章
相关标签/搜索
本站公众号
   欢迎关注本站公众号,获取更多信息