当前位置:首页 > 海外服务器 > 正文

网络负载均衡配置教程(CentOS环境下Nginx实现3台虚拟机负载均衡)

2. 配置三台服务器的网卡,确保“网络负载均衡”已选中 3. 在系统的开始-管理工具-网络负载平衡管理器,打开负载均衡配置程序,新建群集。4. 群集参数配置,主要三个地方:虚拟IP、子网掩码、虚拟主机名。

大家好,今天小编关注到一个比较有意思的话题,就是关于虚拟主机的负载均衡的问题,于是小编就整理了3个相关介绍虚拟主机的负载均衡的解答,让我们一起看看吧。

文章目录:

  1. 网络负载均衡配置教程
  2. CentOS环境下Nginx实现3台虚拟机负载均衡
  3. 负载均衡概述

一、网络负载均衡配置教程

我们以虚拟机做实验来说明这个配置过程.

1. 确保三台服务器的操作系统一致,IP地址设置正确,最好在同一网段,服务器之间Ping没有问题。

假设三台服务器的IP分别为

1). 192.168.0.253

2). 192.168.0.254

3). 192.168.0.255

了网掩码:255.255.255.0

2. 配置三台服务器的网卡,确保“网络负载均衡”已选中

3. 在系统的开始-管理工具-网络负载平衡管理器,打开负载均衡配置程序,新建群集。

4. 群集参数配置,主要三个地方:虚拟IP、子网掩码、虚拟主机名。虚拟IP(虚拟主机名)是供客户端访问的地址,它会把客户端的请求、访问由系统自动根据网络负载路由到每个服务器上,减少单台服务器的压力。这里所配的虚拟IP为:192.168.0.1, 虚拟主机名:test.domain.com,子网掩码与服务器一致,配置完毕,下一步.

5. 这一步,可以根据上面的IP地址,接受默认,点下一步。

6.端口规则,点下一步.

7.连接本机IP,选中被连接主机的其中一块网卡(绑定负载均衡),点下一步。

8.配主机参数.优先级,专用IP配置.

9.网络负载平衡管理.

10.其他二台服务器按照此步骤做一遍即可,在第7步时,要连接本机的IP。

二、CentOS环境下Nginx实现3台虚拟机负载均衡

负载均衡

先来简单了解一下什么是负载均衡,单从字面上的意思来理解就可以解释N台服务器平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。那么负载均衡的前提就是要有多台服务器才能实现,也就是两台以上即可。

测试环境

在VMware里安装了三台。

A服务器IP :192.168.0.219 (主)

B服务器IP :192.168.0.119

C服务器IP :192.168.0.109

部署思路

A服务器做为主服务器,域名直接解析到A服务器(192.168.0.219)上,由A服务器负载均衡到B服务器(192.168.0.119)与C服务器(192.168.0.109)上。

在A服务器上,upstream指令——分配负载

vi /etc/nginx/conf.d/default.conf

upstream 192.168.0.219 {

server 192.168.0.119:80;

server 192.168.0.109:80;

}

server {

listen 80;

server_name 192.168.0.219;

charset utf8;

location / {

proxy_pass

proxy_set_header Host $host;

网络负载均衡配置教程(CentOS环境下Nginx实现3台虚拟机负载均衡)  第1张

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}

}

保存重启nginx

在B、C服务器上,

vi /etc/nginx/conf.d/default.conf

server {

listen 80;

server_name 192.168.0.219;

index index.html;

root /usr/share/nginx/html;

}

保存重启nginx

测试

当访问的时候,为了区分是转向哪台服务器处理我分别在B、C服务器下写一个不同内容的index.html文件,以作区分。

打开浏览器访问a.com结果,刷新会发现所有的请求均分别被主服务器(192.168.5.149)分配到B服务器(192.168.0.119)与C服务器(192.168.0.109)上,实现了负载均衡效果。

服务器不能提供服务吗?

以上例子中,我们都是应用到了主服务器负载均衡到其它服务器上,那么主服务器本身能不能也加在服务器列表中,这样就不会白白浪费拿一台服务器纯当做转发功能,而是也参与到提供服务中来。

怎么解决这个问题呢?因为80端口已经用来监听负载均衡的处理,那么本服务器上就不能再使用80端口来处理192.168.0.219的访问请求,得用一个新的。

于是我们在主服务器中编辑/etc/nginx/conf.d/default.conf,添加以下内容

server {

listen 8080;

server_name 192.168.0.219;

index index.html;

root /usr/share/nginx/html;

}

网络负载均衡配置教程(CentOS环境下Nginx实现3台虚拟机负载均衡)  第2张

重启nginx

然后,再重新渡负载均衡。

更多Nginx相关教程见以下内容

CentOS 6.2实战部署Nginx+MySQL+PHP

使用Nginx搭建WEB服务器

搭建基于Linux6.3+Nginx1.2+PHP5+MySQL5.5的Web服务器全过程

CentOS 6.3下Nginx性能调优

CentOS 6.3下配置Nginx加载ngx_pagespeed模块

CentOS 6.4安装配置Nginx+Pcre+php-fpm

Nginx安装配置使用详细笔记

Nginx日志过滤 使用ngx_log_if不记录特定日志

三、负载均衡概述

1、负载均衡(Load Balance)建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。负载均衡有两方面的含义:首先,大量的并发访问或数据流量分担到多台节点设备上分别处理,减少用户等待响应的时间;其次,单个重负载的运算分担到多台节点设备上做并行处理,每个节点设备处理结束后,将结果汇总,返回给用户,系统处理能力得到大幅度提高。

2、简单来说就是:其一是将大量的并发处理转发给后端多个节点处理,减少工作响应时间;其二是将单个繁重的工作转发给后端多个节点处理,处理完再返回给负载均衡中心,再返回给用户。目前负载均衡技术大多数是用于提高诸如在Web服务器、FTP服务器和其它关键任务服务器上的Internet服务器程序的可用性和可伸缩性。

1)二层负载均衡(mac)

根据OSI模型分的二层负载,一般是用虚拟mac地址方式,外部对虚拟MAC地址请求,负载均衡接收后分配后端实际的MAC地址响应

2)三层负载均衡(ip)

一般采用虚拟IP地址方式,外部对虚拟的ip地址请求,负载均衡接收后分配后端实际的IP地址响应

3)四层负载均衡(tcp)

在三次负载均衡的基础上,用ip+port接收请求,再转发到对应的机器

4)七层负载均衡(http

根据虚拟的url或IP,主机名接收请求,再转向相应的处理服务器

1.四层负载均衡工作在OSI模型中的四层,即传输层。四层负载均衡只能根据报文中目标地址和源地址对请求进行转发,而无法修改或判断所请求资源的具体类型,然后经过负载均衡内部的调度算法转发至要处理请求的服务器。四层负载均衡单纯的提供了终端到终端的可靠连接,并将请求转发至后端,连接至始至终都是同一个。LVS就是很典型的四层负载均衡。

2.七层负载均衡工作在OSI模型的第七层应用层,所以七层负载均衡可以基于请求的应用层信息进行负载均衡,例如根据请求的资源类型分配到后端服务器,而不再是根据IP和端口选择。七层负载均衡的功能更丰富更灵活,也能使整个网络更智能。如上图所示,在七层负载均衡两端(面向用户端和服务器端)的连接都是独立的。

3.简言之,四层负载均衡就是基于IP+端口实现的。七层负载均衡就是通过应用层资源实现的。

1、抗负载能力强。抗负载能力强、性能高,能达到F5硬件的60%;对内存和cpu资源消耗比较低

2、工作在网络4层,通过vrrp协议转发(仅作分发之用),具体的流量由linux内核处理,因此没有流量的产生。

2、稳定性、可靠性好,自身有完美的热备方案;(如:LVS+Keepalived)

网络负载均衡配置教程(CentOS环境下Nginx实现3台虚拟机负载均衡)  第3张

3、应用范围比较广,工作在四层,所以不用考虑要处理的具体应用,可以对所有应用做负载均衡;

4、不支持正则处理,不能做动静分离。

5、支持负载均衡算法:rr(轮循)、wrr(带权轮循)、lc(最小连接)、wlc(权重最小连接)

6、配置 复杂,对网络依赖比较大,稳定性很高。

1、工作在网络的7层之上,可以针对http应用做一些分流的策略,比如针对域名、目录结构;

2、Nginx对网络的依赖比较小,理论上能ping通就就能进行负载功能;

3、Nginx安装和配置比较简单,测试起来比较方便;

4、也可以承担高的负载压力且稳定,一般能支撑超过1万次的并发;

5、对后端服务器的健康检查,只支持通过端口来检测,不支持通过url来检测。

6、Nginx对请求的异步处理可以帮助节点服务器减轻负载;

7、Nginx仅能支持http、https和Email协议,这样就在适用范围较小。

8、不支持Session的直接保持,但能通过ip_hash来解决。

9、支持负载均衡算法:Round-robin(轮循)、Weight-round-robin(带权轮循)、Ip-hash(Ip哈希)

10、Nginx还能做Web服务器即Cache功能。

1、支持两种代理模式:TCP(四层)和HTTP(七层),支持虚拟主机;

2、能够补充Nginx的一些缺点比如Session的保持,Cookie的引导等工作

3、支持url检测后端的服务器出问题的检测会有很好的帮助。

4、更多的负载均衡策略比如:动态加权轮循(Dynamic Round Robin),加权源地址哈希(Weighted Source Hash),加权URL哈希和加权参数哈希(Weighted Parameter Hash)已经实现

5、单纯从效率上来讲HAProxy更会比Nginx有更出色的负载均衡速度。

6、HAProxy可以对Mysql进行负载均衡,对后端的DB节点进行检测和负载均衡。

9、支持负载均衡算法:Round-robin(轮循)、Weight-round-robin(带权轮循)、source(原地址保持)、RI(请求URL)、rdp-cookie(根据cookie)

10、不能做Web服务器即Cache

1、 四层、七层负载均衡的区别

2、 四层和七层负载均衡的特点及常用负载均衡Nginx、Haproxy、LVS对比

3、 linux负载均衡总结性说明 四层负载和七层负载有什么区别

到此,以上就是小编对于虚拟主机的负载均衡的问题就介绍到这了,希望介绍关于虚拟主机的负载均衡的3点解答对大家有用。

发表评论

最新文章

取消
扫码支持 支付码