nginx、keepalived、lvs了解

 

1. nginx

1.1.  nginx简介

Nginx是一个自由、开源、高性能及轻量级的HTTP服务器及反转代理服务器。Nginx以其高性能、稳定、功能丰富、配置简单及占用系统资源少而著称。

Nginx 超越 Apache 的高性能和稳定性,使得国内使用 Nginx 作为 Web 服务器的网站也越来越多.

 

1.2. 基础功能 

反向代理加速,简单的负载均衡和容错; 

1.3. 优势

1Nginx专为性能优化而开发,性能是其最重要的考量, 实现上非常注重效率 。有报告表明能支持高达 50,000 个并发连接数 

2Nginx具有很高的稳定性。其它HTTP服务器,当遇到访问的峰值,或者有人恶意发起慢速连接时,也很可能会导致服务器物理内存耗尽频繁交换,失去响应,只能重启服务器。

例如当前apache一旦上到200个以上进程,web响应速度就明显非常缓慢了。而Nginx采取了分阶段资源分配技术,使得它的CPU与内存占用率非常低。

3nginx官方表示保持10,000个没有活动的连接,它只占2.5M内存,就稳定性而言, nginx其他代理服务器更胜一筹。 

4Nginx支持热部署。它的启动特别容易, 并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够在不间断服务的情况下,对软件版本进行进行升级。 

5Nginx采用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是什么

1LVS的英文全称是Linux Virtual Server,即Linux虚拟服务器。

2、它是我们国家的章文嵩博士的一个开源项目。

3.2. LVS能干什么

1、 LVS主要用于多服务器的负载均衡

2、 它工作在网络层,可以实现高性能,高可用的服务器集群技术。

3、 它可把许多低性能的服务器组合在一起形成一个超级服务器。

4、 它配置非常简单,且有多种负载均衡的方法。

5、 它稳定可靠,即使在集群的服务器中某台服务器无法正常工作,也不影响整体效果。

6、 可扩展性也非常好。

 

3.3. nginxlvs作对比的结果:

1nginx工作在网络的应用层,主要做反向代理;lvs工作在网络层,主要做负载均衡nginx也同样能承受很高负载且稳定,但负载度和稳定度不及lvs。  

2nginx对网络的依赖较小,lvs就比较依赖于网络环境

3、在使用上,一般最前端所采取的策略应是lvsnginx可作为lvs节点机器使用

 

3.4. 负载均衡机制

前面我们说了LVS是工作在网络层。相对于其它负载均衡的解决办法,它的效率是非常高的。LVS的通过控制IP来实现负载均衡。IPVS是其具体的实现模块。IPVS的主要作用:安装在Director Server上面,在Director Server虚拟一个对外访问的IPVIP)。用户访问VIP,到达Director ServerDirector Server根据一定的规则选择一个Real Server,处理完成后然后返回给客户端数据。这些步骤产生了一些具体的问题,比如如何选择具体的Real ServerReal Server如果返回给客户端数据等等。IPVS为此有三种机制:

 

1. VS/NAT(Virtual Server via Network Address Translation),即网络地址翻转技术实现虚拟服务器。

当请求来到时,Diretor server上处理的程序将数据报文中的目标地址(即虚拟IP地址)改成具体的某台Real Server,端口也改成Real Server的端口,然后把报文发给Real ServerReal Server处理完数据后,需要返回给Diretor Server,然后Diretor server将数据包中的源地址和源端口改成VIP的地址和端口,最后把数据发送出去。由此可以看出,用户的请求和返回都要经过Diretor Server,如果数据过多,Diretor Server肯定会不堪重负。

 

 

 

2. VS/TUNVirtual 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/DRVirtual Server via Direct Routing),即用直接路由技术实现虚拟服务器。

跟前面两种方式,它的报文转发方法有所不同,VS/DR通过改写请求报文的MAC地址,将请求发送到Real Server,而Real Server将响应直接返回给客户,免去了VS/TUN中的IP隧道开销。这种方式是三种负载调度机制中性能最高最好的,但是必须要求Director ServerReal Server都有一块网卡连在同一物理网段上。

 

 

 

 

转载于:https://www.cnblogs.com/zhangyichao/p/6894006.html

### 使用 Keepalived LVS 结合 Nginx 的高可用负载均衡方案 #### 一、概述 为了实现高可用性高效的负载均衡,可以采用 **Keepalived + LVS + Nginx** 架构。其中,LVS 负责四层流量分发,具有强大的性能简单的逻辑结构;而 Nginx 则负责七层反向代理功能,能够灵活应对复杂的业务需求[^2]。 --- #### 二、架构设计 该架构通常由以下几个部分组成: 1. **Keepalived**: 提供虚拟 IP (VIP),并管理主备切换机制。 2. **LVS**: 执行四层负载均衡,将客户端请求转发至后端真实服务器。 3. **Nginx**: 运行在后端的真实服务器上,作为七层反向代理进一步处理 HTTP 请求。 通过这种组合方式,既发挥了 LVS 的高性能优势,又利用了 Nginx 对复杂场景的支持能力[^1]。 --- #### 三、具体配置步骤 ##### 1. 安装与初始化环境 确保所有参与节点都已安装必要的软件包: ```bash yum install keepalived ipvsadm nginx -y ``` ##### 2. 配置 Keepalived 编辑 `/etc/keepalived/keepalived.conf` 文件,在两台前端服务器分别设置为主节点备份节点。以下是主节点的示例配置: ```plaintext vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1234 } virtual_ipaddress { 192.168.1.100 } } ``` 对于备用节点,则需调整 `state BACKUP` 及降低优先级值(如设为 `priority 90`)。此过程实现了 VIP 自动漂移的功能[^3]。 ##### 3. 设置 LVS 参数 启用 IPVS 模块并将规则写入脚本以便启动时加载: ```bash modprobe ip_vs echo "options nf_conntrack hashsize=131072" > /etc/modprobe.d/nf_conntrack.conf sysctl net.ipv4.ip_forward=1 ipvsadm -A -t 192.168.1.100:80 -s rr ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.101:80 -m ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.102:80 -m ``` 上述命令创建了一个轮询模式下的 TCP 类型服务地址,并关联两个实际工作的 Web 服务器实例。 ##### 4. 后端 Nginx 部署 每台被指向的目标主机都需要运行独立版本的 Nginx 来完成最终的内容交付任务。典型站点定义如下所示: ```nginx server { listen 80; server_name localhost; location / { root html; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } ``` 当某一台发生异常退出时,可通过内置指令动态通知上游组件停止对其分配新连接。 --- #### 四、优点总结 - **高效稳定**:借助 LVS 处理大量基础数据流传输事务的同时让更擅长特定协议解析操作的 Nginx 关注于应用层面交互细节。 - **易于维护扩展**:无论是单独替换某个环节还是整体扩容升级都非常便捷直观。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值