好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

负载均衡和反向代理

负载均衡和反向代理

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)两台负载均衡服务器

作者: Leo_wl

    

出处: http://www.cnblogs.com/Leo_wl/

    

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

版权信息

查看更多关于负载均衡和反向代理的详细内容...

  阅读:42次