1.1. nginx 简介
Nginx 是一个自由, 开源, 高性能及轻量级的 HTTP 服务器及反转代理服务器. Nginx 以其高性能, 稳定, 功能丰富, 配置简单及占用系统资源少而著称.
Nginx 超越 Apache 的高性能和稳定性, 使得国内使用 Nginx 作为 web 服务器的网站也越来越多.
获取大数据或者其他系统学习资料和学习规划, 系统学习框架图以及学习路线, 学习方法请加裙 488162688 获取学习交流.
1.2. 基础功能
反向代理加速, 简单的负载均衡和容错;
1.3. 优势
1,Nginx 专为性能优化而开发, 性能是其最重要的考量, 实现上非常注重效率 . 有报告表明能支持高达 50,000 个并发连接数.
2,Nginx 具有很高的稳定性. 其它 HTTP 服务器, 当遇到访问的峰值, 或者有人恶意发起慢速连接时, 也很可能会导致服务器物理内存耗尽频繁交换, 失去响应, 只能重启服务器.
例如当前 apache 一旦上到 200 个以上进程, web 响应速度就明显非常缓慢了. 而 Nginx 采取了分阶段资源分配技术, 使得它的 CPU 与内存占用率非常低.
3,nginx 官方表示保持 10,000 个没有活动的连接, 它只占 2.5M 内存, 就稳定性而言, nginx 比其他代理服务器更胜一筹.
4,Nginx 支持热部署. 它的启动特别容易, 并且几乎可以做到 7*24 不间断运行, 即使运行数个月也不需要重新启动. 你还能够在不间断服务的情况下, 对软件版本进行进行升级.
5,Nginx 采用 C 进行编写, 不论是系统资源开销还是 CPU 使用效率都高很多.
1.4. 安装
见文档
2.keepalived
2.1. 简介
Keepalived 的作用是检测 web 服务器的状态, 如果有一台 web 服务器死机, 或工作出现故障, Keepalived 将检测到, 并将有故障的 web 服务器从系统中剔除, 当 web 服务器工作正常后 Keepalived 自动将 web 服务器加入到服务器群中, 这些工作全部自动完成, 不需要人工干涉, 需要人工做的只是修复故障的 web 服务器.
2.2. 作用
主要用作 RealServer 的健康状态检查以及 LoadBalance 主机和 BackUP 主机之间 failover 的实现.
3.lvs
3.1.LVS 是什么
1,LVS 的英文全称是 Linux Virtual Server, 即 Linux 虚拟服务器.
2, 它是我们国家的章文嵩博士的一个开源项目.
3.2.LVS 能干什么
1,LVS 主要用于多服务器的负载均衡.
2, 它工作在网络层, 可以实现高性能, 高可用的服务器集群技术.
3, 它可把许多低性能的服务器组合在一起形成一个超级服务器.
4, 它配置非常简单, 且有多种负载均衡的方法.
5, 它稳定可靠, 即使在集群的服务器中某台服务器无法正常工作, 也不影响整体效果.
6, 可扩展性也非常好.
3.3.nginx 和 lvs 作对比的结果:
1,nginx 工作在网络的应用层, 主要做反向代理; lvs 工作在网络层, 主要做负载均衡. nginx 也同样能承受很高负载且稳定, 但负载度和稳定度不及 lvs.
2,nginx 对网络的依赖较小, lvs 就比较依赖于网络环境.
3, 在使用上, 一般最前端所采取的策略应是 lvs. nginx 可作为 lvs 节点机器使用.
3.4. 负载均衡机制
前面我们说了 LVS 是工作在网络层. 相对于其它负载均衡的解决办法, 它的效率是非常高的. LVS 的通过控制 IP 来实现负载均衡. IPVS 是其具体的实现模块. IPVS 的主要作用: 安装在 Director Server 上面, 在 Director Server 虚拟一个对外访问的 IP(VIP). 用户访问 VIP, 到达 Director Server,Director Server 根据一定的规则选择一个 Real Server, 处理完成后然后返回给客户端数据. 这些步骤产生了一些具体的问题, 比如如何选择具体的 Real Server,Real Server 如果返回给客户端数据等等. IPVS 为此有三种机制:
1. 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 肯定会不堪重负.
2. VS/TUN(Virtual Server via IP Tunneling), 即 IP 隧道技术实现虚拟服务器.
IP 隧道 (IP tunneling) 是将一个 IP 报文封装在另一个 IP 报文的技术, 这可以使得目标为一个 IP 地址的数据报文能被封装和转发到另一个 IP 地址. IP 隧道技术亦称为 IP 封装技术(IP encapsulation). 它跟 VS/NAT 基本一样, 但是 Real server 是直接返回数据给客户端, 不需要经过 Diretor server, 这大大降低了 Diretor server 的压力.
3. VS/DR(Virtual Server via Direct Routing), 即用直接路由技术实现虚拟服务器.
跟前面两种方式, 它的报文转发方法有所不同, VS/DR 通过改写请求报文的 MAC 地址, 将请求发送到 Real Server, 而 Real Server 将响应直接返回给客户, 免去了 VS/TUN 中的 IP 隧道开销. 这种方式是三种负载调度机制中性能最高最好的, 但是必须要求 Director Server 与 Real Server 都有一块网卡连在同一物理网段上.
来源: http://www.jianshu.com/p/e234fedb9263