怎样正确搭建linux网站服务器 linux网站服务器搭建


LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器,它是我国的章文嵩博士发起的一个开源项目,现在LVS已经是Linux标准内核的一部分 。LVS主要用于多服务器的负载均衡,它工作在网络层,可以实现一个高性能,高可用的服务器群集,它具有良好的可靠性、可扩展性和可操作性,即使在集群的服务器中某台服务器无法正常工作,也不影响整体效果 。官方站点:http://www.linuxvirtualserver.org 。
LVS体系架构 如上图所示,LVS可分为三部分:

    Load Balancer:这是LVS的核心部分,位于整个集群系统的最前端,有一台或者多台负载调度器(Director Server)组成,它负责将客户的请求按照一定的算法分发到下一层(Server Array层)不同的应用服务器(Real Server)进行处理,自己本身不做具体业务的处理 。Server Array:该层负责具体业务,由一组实际运行应用服务的机器组成,Real Server可以是WEB服务器、MAIL服务器、FTP服务器、DNS服务器、视频服务器中的一个或者多个,每个Real Server之间通过高速的LAN或分布在各地的WAN相连接 。在实际的应用中,上层的Director Server其实也可以同时兼任Real Server的角色 。Shared Storage:为所有Real Server提供共享存储空间和内容一致性的存储区域,在物理上,一般由磁盘阵列设备组成 。
LVS基本工作原理 LVS是工作在网络层,LVS通过控制IP来实现负载均衡 。IPVS是其具体的实现模块 。IPVS的主要作用:安装在Director Server上,在Director Server虚拟一个对外访问的IP(VIP) 。用户访问VIP,到达Director Server,Director Server根据一定的规则选择一个Real Server,处理完成后然后返回给客户端数据 。
    当用户向负载均衡调度器(Director Server)发起请求,调度器将请求发送至内核空间;PREROUTING链首先会接收到用户请求,判断目标IP确定是本机IP,将数据包发往INPUT链;IPVS是工作在INPUT链上的,当用户请求到达INPUT时,IPVS会将用户请求和自己已定义好的集群服务进行比对,如果用户请求的就是定义的集群服务,那么此时IPVS会强行修改数据包里的目标IP地址及端口,并将新的数据包发往POSTROUTING链;POSTROUTING链接收数据包后发现目标IP地址刚好是自己的后端服务器,那么此时通过选路,将数据包最终发送给后端的服务器 。
LVS转发类型 这些步骤产生了一些具体的问题,比如如何选择具体的Real Server,Real Server如何返回给客户端数据等等 。IPVS为此有三种转发类型:
    VS/NAT(Virtual Server via Network Address Translation)网络地址转换,即网络地址翻转技术实现虚拟服务器 。当请求来到时,Diretor server上处理的程序将数据报文中的目标地址(即虚拟IP地址)改成具体的某台Real Server,端口也改成Real Server的端口,然后把报文发给Real Server 。Real Server处理完数据后,需要返回给Diretor Server,然后Diretor server将数据包中的源地址和源端口改成VIP的地址和端口,最后把数据发送出去 。由此可以看出,用户的请求和返回都要经过Diretor Server,如果数据过多,Diretor Server肯定会不堪重负 。VS/TUN(Virtual Server via IP Tunneling)隧道模型,即IP隧道技术实现虚拟服务器 。它跟VS/NAT基本一样,但是Real server是直接返回数据给客户端,不需要经过Diretor server,这大大降低了Diretor server的压力 。VS/DR(Virtual Server via Direct Routing)直接路由模型,即用直接路由技术实现虚拟服务器 。跟前面两种方式,它的报文转发方法有所不同,VS/DR通过改写请求报文的MAC地址,将请求发送到Real Server,而Real Server将响应直接返回给客户端,免去了VS/TUN中的IP隧道开销 。这种方式是三种负载调度机制中性能最好的,应用比较广泛 。

    推荐阅读