1.代理与反向代理
代理服务器:
代理
内部网络对
Internet的连接请求。
不支持外部对内部网络的访问请求。
反向代理服务器:
代理
外部网络上的主机访问
内部网络。
2.常见WEB负载均衡方法
(1)用户手动选择
常见于各个资源下载网站,用户自己手动选择从哪个服务器下载。
(2)DNS轮询方式
对同一主机名,添加多条
A记录,让其DNS轮询多个IP
可以通过Linux的dig命令查看域名解析情况:
dig xxx.baidu.com
DNS轮询的缺点:
A.可靠性低
B.负载分配不均衡
因此DNS轮询适用于可靠性要求不高的负载均衡,比如图片服务器集群、纯静态网页服务器集群等。
(3)四/七层负载均衡设备
通常作用与OSI的第四层或第七层
OSI:开放系统互连模型(Open System Interconnection)
具体7层 | 数据格式 | 功能与连接方式 | 典型设备 |
应用层 Application | | 网络服务与使用者应用程序间的一个接口 | 网关 |
表示层 Presentation | | 数据表示、数据安全、数据压缩 | |
会话层 Session | | 建立、管理和终止会话 | |
传输层 Transport | 数据组织成数据段Segment | 用一个寻址机制来标识一个特定的应用程序(端口号) | 防火墙 |
网络层 Network | 分割和重新组合数据包Packet | 基于网络层地址(IP地址)进行不同网络系统间的路径选择 | 路由器 |
数据链路层 Data Link | 将比特信息封装成数据帧Frame | 在物理层上建立、撤销、标识逻辑链接和链路复用 以及差错校验等功能。通过使用接收系统的硬件地址或物理地址来寻址 | 网桥、交换机、网卡 |
物理层Physical | 传输比特(bit)流 | 建立、维护和取消物理连接 | 光纤、同轴电缆、 双绞线、中继器和集线器 |
3.多线多地区智能DNS解析与混合负载均衡方式
4.Nginx反向代理配置
使用反向代理之后,后端WEB服务器(以PHP为例),就不能直接通过$_SERVER['REMOTE_ADDR']变量来获取用户的真实IP了,这时获取的将是Nginx负载均衡服务器的IP。此时需要在Nginx反向代理时添加Header头信息X-Forwarded-For,让后端服务器能通过$_SERVER['HTTP-X-FORWORDED-FOR']获取用户真实IP。参考平时我们常用的获取用户IP的函数。
5.动静态网页分离
Citrix NetScaler 4-7层负载均衡器(基于TCP)
Nginx负载均衡架构
6.关键的Upstream模块
Upstream:Nginx负载均衡的主要模块,位于http之内,默认的负载均衡方式为轮询。
ip_hash:负载均衡时,将某个客户端IP的请求,通过哈希算法,定位到同一台后端服务器上,以解决session不共享的问题。
如果能做到session共享,还是不要用这个配置,因为其可能造成负载不均衡。
摘除负载均衡服务器,需要设置其down,而不是删除记录,删除记录可能造成session失效(原来的back1hash到back2上去了)
upstream backend{
ip_hash;
server back1.10jqka.com.cn;
server back2.10jqka.com.cn;
server back3.10jqka.com.cn down;
}
server
语法:
server name [parameters]
默认none
name可以是域名、IP、端口号、UNIX Socket
parameters可以是
7.负载均衡服务器的双机高可用
两种实现方式:
(1)一台主服务器加一台热备服务器
(2)两台负载均衡服务器