一种基于Docker容器的网络负载均衡系统及其搭建方法、工作方法与流程

文档序号:11156798阅读:1279来源:国知局
一种基于Docker容器的网络负载均衡系统及其搭建方法、工作方法与制造工艺

本发明涉及一种基于Docker容器的网络负载均衡系统及其搭建方法、工作方法,属于云计算虚拟化领域。



背景技术:

云计算技术是IT产业界的一场技术革命,它能够按需部署计算资源。从本质上讲,云计算是指用户终端通过远程连接获取存储、计算、数据库等计算资源。虚拟化技术是云计算技术的核心组成之一,是将各种计算及存储资源充分整合和高效利用的关键技术,包括服务器虚拟化和桌面虚拟化。

Docker作为新兴的轻量级虚拟化技术,与传统的VM相比,它更轻量,启动速度更快,单台硬件上可同时跑成百上千个容器,所以非常适合在业务高峰期通过启动大量容器进行横向扩展。网络负载均衡技术是利用一定的分配策略将网络负载平衡地分摊到网络集群的各个操作单元上,使得单个重负载任务能够分担到多个单元上并行处理,或者使得大量并发访问或数据流分担到多个单元上分别处理,从而减少用户的等待响应时间。

目前的网络负载均衡系统是由多台服务器主机以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,外部发送的访问请求通过一系列算法被分配到每台服务器主机上的Web服务器中。

目前市面上这些技术普遍存在如下问题:

1)多台服务器主机成本高:传统技术的后台Web服务器集合由多台服务器主机组成,每台服务器主机价格不低,对于小型企业实现网络负载均衡系统成本过高。

2)服务器主机资源浪费:传统技术是把每台服务器主机当作一个后台服务器,服务器主机的硬件资源除了作为后台Web服务器的部分,其他空闲部分将会造成资源的浪费。

3)添加服务器主机工作量大:当网站访问量增大需要添加服务器主机时,传统技术存在因为添加的服务器主机配置型号不能与旧服务器完全一致,在添加服务器主机后会需要修改算法。



技术实现要素:

针对现有技术的不足,本发明提供了一种基于Docker容器的网络负载均衡系统;

本发明还提供了上述网络负载均衡系统的搭建方法、工作方法;

本发明利用Docker的容器化技术,在一台服务器主机上同时搭载一个负载均衡器和多台后台Web服务器。本发明的改进主要体现在两个方面:一是整个系统可以在一台服务器主机上实现,不需要用多台服务器主机组成后台服务器集合,节省成本;二是整台服务器主机的硬件资源都用于负载均衡器和Web服务器的运行,尽量做到了用多少拿多少;三是添加的每个Web服务器都产生于同一个镜像,能做到配置型号完全一致。

本发明的技术方案为:

一种基于Docker容器的网络负载均衡系统,包括一台服务器主机、一个反向代理服务器及若干台后台Web服务器。

根据本发明优选的,所述反向代理服务器用于接受Internet上的连接请求,将请求转发给内部网络上的后台Web服务器,并将从后台Web服务器上得到的结果返回给Internet上请求连接的客户端。

服务器主机作为整个系统的硬件基础,需要拥有较高处理能力、稳定性、可靠性等方面要求。后台Web服务器指网站服务器,是驻留于因特网上某种类型计算机的程序,可以向浏览器等Web客户端提供文档,也可以放置网站文件,让全世界浏览;可以放置数据文件,让全世界下载。

根据本发明优选的,所述服务器主机为DELL PowerEdge R730服务器,所述反向代理服务器是指Nginx服务器,所述后台Web服务器是指Apache服务器。

DELL PowerEdge R730服务器,配置为48核CPU、96G内存、8TB本地硬盘;Nginx服务器作为一个轻量级、高性能的Web server,其配置灵活多样,可在配置负载均衡的同时合理地融合其他功能,形成一套可以满足实际需求的配置方案;Apache服务器是世界使用排名第一的Web服务器软件,简单、速度快、性能稳定,并且很好的支持PHP语言(目前Web开发最主流的语言)。

上述网络负载均衡系统的搭建方法,具体步骤包括:

(1)准备宿主机,宿主机选择一台服务器主机即可,安装Ubuntu14.04操作系统;Ubuntu14.04作为支持Docker的Linux操作系统中相对稳定的版本,可以用命令行直接安装配置Docker环境;

(2)选择后台Web服务器,在其根目录下建立Docker容器所需的主文件夹,主文件夹包括两项:一项为构建Docker容器镜像的Dockerfile文件,作为镜像的模板,方便迁移;另一项为能够挂载的文件夹;用于存放网页代码,并能随时更新;

(3)编写所述Dockerfile文件,所述Dockerfile文件包括Docker容器需要的操作系统、Docker容器需要的软件及其环境变量、Docker容器要暴露的端口号、新创建的文件夹;Docker容器需要的操作系统为Ubuntu 14.04版本的操作系统;Docker容器需要的软件包括Apache服务器、编程环境,编程环境为PHP编程环境、Java编程环境或ASP编程环境;新创建的文件夹用于挂载步骤(2)所述的能够挂载的文件夹;

(4)把需要通过负载均衡来平衡访问量或流量的网页代码放在步骤(2)创建的所述能够挂载的文件夹;

(5)用Dockerfile文件构建Docker容器镜像;

(6)以步骤(5)创建的Docker容器镜像为模板,创建Docker容器,并连接宿主机的端口与Docker容器要暴露的端口,并将步骤(2)创建的能够挂载的文件夹挂载到步骤(3)新创建的文件夹上;

(7)重复步骤(6),按需求创建多个Docker容器;

(8)在宿主机中安装Nginx服务器作为反向代理服务器,并修改其default文件,使其能支持PHP、Java或ASP语言写的网页代码;

(9)在宿主机中安装配置PHP编程环境、Java编程环境或ASP编程环境;

(10)修改Nginx服务器的nginx.conf文件,在其中添加负载均衡的配置的代码,平衡访问量或流量。其中,Nginx服务器原有轮询、加权轮询、ip_hash、fair、url_hash这五种基本的配置方式,同时Nginx还支持其他根据需求编写的负载均衡算法。

上述网络负载均衡系统的工作方法,具体步骤包括:

A、用户通过域名或IP地址访问网络负载均衡系统搭载的网站时,访问请求会先到达服务器主机中的反向代理服务器;

B、反向代理服务器将访问请求分配给各个容器中的后台Web服务器,降低了每台Web服务器的负载,平衡访问量或流量。

本发明的有益效果为:

1、本发明在使用一台服务器主机的情况下能搭建起网络负载均衡的整个系统,在访问网页时,访问量或数据流会按算法被分配到每个容器的Apache服务器中,实现网络的负载均衡。

2、本发明在访问量或流量过大,需要添加新的Apache服务器来进行分流时,可直接使用镜像快速创建容器,容器的配置与之前创建的完全相同,只需把这台容器的地址添加到负载均衡配置代码中即可,实现快速的增加网络负载均衡系统的规模。

附图说明

图1为本发明一种基于Docker容器的网络负载均衡系统的结构框图。

具体实施方式

下面结合说明书附图和实施例对本发明作进一步限定,但不限于此。

实施例1

一种基于Docker容器的网络负载均衡系统,如图1所示,包括一台服务器主机、一个反向代理服务器及若干台后台Web服务器。

所述反向代理服务器用于接受Internet上的连接请求,将请求转发给内部网络上的后台Web服务器,并将从后台Web服务器上得到的结果返回给Internet上请求连接的客户端。

服务器主机作为整个系统的硬件基础,需要拥有较高处理能力、稳定性、可靠性等方面要求。后台Web服务器指网站服务器,是驻留于因特网上某种类型计算机的程序,可以向浏览器等Web客户端提供文档,也可以放置网站文件,让全世界浏览;可以放置数据文件,让全世界下载。

所述服务器主机为DELL PowerEdge R730服务器,所述反向代理服务器是指Nginx服务器,所述后台Web服务器是指Apache服务器。

DELL PowerEdge R730服务器,配置为48核CPU、96G内存、8TB本地硬盘;Nginx服务器作为一个轻量级、高性能的Web server,其配置灵活多样,可在配置负载均衡的同时合理地融合其他功能,形成一套可以满足实际需求的配置方案;Apache服务器是世界使用排名第一的Web服务器软件,简单、速度快、性能稳定,并且很好的支持PHP语言(目前Web开发最主流的语言)。

实施例2

实施例1所述的网络负载均衡系统的搭建方法,具体步骤包括:

(1)准备宿主机,宿主机选择一台服务器主机即可,安装Ubuntu14.04操作系统;Ubuntu14.04作为支持Docker的Linux操作系统中相对稳定的版本,可以用命令行直接安装配置Docker环境;

(2)选择后台Web服务器,在其根目录下建立Docker容器所需的主文件夹,主文件夹包括两项:一项为构建Docker容器镜像的Dockerfile文件,作为镜像的模板,方便迁移;另一项为能够挂载的文件夹;用于存放网页代码,并能随时更新;

(3)编写所述Dockerfile文件,所述Dockerfile文件包括Docker容器需要的操作系统、Docker容器需要的软件及其环境变量、Docker容器要暴露的端口号、新创建的文件夹;Docker容器需要的操作系统为Ubuntu 14.04版本的操作系统;Docker容器需要的软件包括Apache服务器、编程环境,编程环境为PHP编程环境、Java编程环境或ASP编程环境;新创建的文件夹用于挂载步骤(2)所述的能够挂载的文件夹;

(4)把需要通过负载均衡来平衡访问量或流量的网页代码放在步骤(2)创建的所述能够挂载的文件夹;

(5)用Dockerfile文件构建Docker容器镜像;

(6)以步骤(5)创建的Docker容器镜像为模板,创建Docker容器,并连接宿主机的端口与Docker容器要暴露的端口,并将步骤(2)创建的能够挂载的文件夹挂载到步骤(3)新创建的文件夹上;

(7)重复步骤(6),按需求创建多个Docker容器;

(8)在宿主机中安装Nginx服务器作为反向代理服务器,并修改其default文件,使其能支持PHP、Java或ASP语言写的网页代码;

(9)在宿主机中安装配置PHP编程环境、Java编程环境或ASP编程环境;

(10)修改Nginx服务器的nginx.conf文件,在其中添加负载均衡的配置的代码,平衡访问量或流量。其中,Nginx服务器原有轮询、加权轮询、ip_hash、fair、url_hash这五种基本的配置方式,同时Nginx还支持其他根据需求编写的负载均衡算法。

实施例3

实施例1所述的网络负载均衡系统的工作方法,具体步骤包括:

A、用户通过域名或IP地址访问网络负载均衡系统搭载的网站时,访问请求会先到达服务器主机中的反向代理服务器;

B、反向代理服务器将访问请求分配给各个容器中的后台Web服务器,降低了每台Web服务器的负载,平衡访问量或流量。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1