负载均衡代理基础概念:正向代理,由客户端来使用,代理的近端为用户,对网站服务来说代理才是直面的用户,数据流从客户端到服务。反向代理,由网站服务使用,代理的近端为网站,对于客户端来说代理才是直面的服务,
负载均衡
代理基础概念:
- 正向代理,由客户端来使用,代理的近端为用户,对网站服务来说代理才是直面的用户,数据流从客户端到服务。
- 反向代理,由网站服务使用,代理的近端为网站,对于客户端来说代理才是直面的服务,数据流从服务到客户端。反向代理能提高后端服务的安全性。
几种负载均衡方案
DNS负载均衡
实现:给域名添加多天A记录(需域名服务商支持)
优点:简单快捷,性能极高,没有资源耗费
缺点:权重不可设定、没有故障切换、服务变更后浏览器在内的dns缓存生效问题七层负载均衡
实现:工作在应用层,包括nginx
、HAProxy
等http
反向代理
优点:故障切换、后端集群高可用
缺点:代理自身的单点问题四层负载均衡(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; }}