标题 | Linux负载均衡集群技术在网络服务器中的应用 |
范文 | 孔祥真+张丁+李忠远 摘 要:调研了目前市场占有率比较高的Unix和Linux服务器应用现状,重点研究了Linux集群技术,并在校园网络平台的搭建中使用了Nginx负载均衡技术。分析Linux小型机集群方案的可行性,以及Nginx反向代理技术对于解决网络服务器高负荷、高流量、不稳定等问题的优势,并部署了Nginx服务器和Tomcat服务器集群,为学校提供了一个高可用、高并发、高稳定且廉价的服务器解决方案。 关键词:Linux;负载均衡;网络服务器;集群;Ngnix DOIDOI:10.11907/rjdk.162633 中图分类号:TP393 文献标识码:A文章编号:1672-7800(2016)012-0144-03 0 引言 随着网络技术的发展,对于服务器的需求量也随之剧增。除了Unix系统,作为类Unix系统的Linux操作系统近年来也倍受青睐。最近,著名杂志《网络世界》进行了一次调查,其经由多种渠道搜集了来自各行各业,也包括政府机构IT部门的Linux操作系统在产业中的应用情况,以此预知Linux在未来应用领域的发展趋势。调查结果表明,Linux有着非常好的应用前景,近64.5%以上的负责人计划将Linux应用于Web服务器。Unix大型机固然有较为明显的性能优势,然而近期市场占有率有下降的趋势。 以目前Web服务器应用较多的Nginx技术为支持,构建Linux小型机集群替代Unix大型机,以尽可能地降低服务器成本。本文首先探讨服务器集群技术,分析负载均衡集群的算法策略与工作原理,然后在校园服务器网络平台的搭建中,运用该技术部署Tomcat服务器集群和Nginx服务器,并采用Nginx反向代理的关键字命名规则进行整合,搭建一个具有较强稳定性与可用性的校园网络服务器。 1 Nginx及其相关技术 1.1 Nginx Nginx可作为轻量级的Web服务器、反向代理服务器及电子邮件代理服务器使用,由俄罗斯的程序设计师Igor Sysoev开发。其占有内存少、并发性能好,并发能力优于同类网页服务器。目前,我国使用Nginx的网站用户包括百度、新浪、京东、网易、腾讯、淘宝等知名网站。Nginx作为一款较为实用的Web服务器,与其它Web服务器相比具有以下优点[1]:①支持网络请求高并发。据官方统计,其每秒能处理5万静态网页请求;②反向代理性能优越,通常被用于负载均衡;③CPU与内存占用率低。官方统计数据显示,其占用率仅为Apache的1/5~1/10;④对于php可使用cgi与fastcgi方式。 1.2 正向代理与反向代理 (1)正向代理(Forward Proxy)。通常所说的代理技术指正向代理技术。正向代理的定义如下:一个位于客户端的用户A、服务器B、位于A和B之间的代理服务器Z,用户A要从服务器B取得用户请求的内容,可以通过代理服务器Z发送请求并指定目标是服务器B,由代理服务器Z向目标服务器B转交请求,获得的内容返回客户端A。也即是说,正向代理就是代理服务器替代客户端用户A来访问服务器B。 (2)反向代理(Reverse Proxy)。在反向代理时,对于客户端而言,代理服务器如同原始资源服务器,客户端用户不需要进行任何设置。客户端向反向代理的命名空间发送连接请求,然后服务器Z判断向何处转交连接请求,并将获得的内容返回给客户端的用户A。用户A会感觉其请求的是原始资源服务器,而不是反向代理服务器Z。 二者区别为:①正向代理能够让带有防火墙的局域网用户访问外部互联网;②反向代理将防火墙后面的服务器提供给用户访问,还能为后端的多台服务器提供负载平衡,或者为后端多台性能不均的服务器提供权重服务;③正向代理使客户端通过其可以访问任意网站且隐藏本身,因此必须采取相应的安全措施,以确保仅为授权有保证的互联网客户端提供网络服务。 1.3 负载均衡技术 负载均衡(Load Balance)是建立在网络结构上的一种廉价、有效方法,它可以扩展网络设备带宽,增加吞吐量,增强网络并发处理数据的能力,提高网络的可用性和灵活性。Nginx支持3种负载均衡策略:①轮询:请求依次轮询每个服务器;②最少链接:请求发送给持有最少活动链接的服务器;③IP哈希:请求通过哈希函数决定发送给哪个服务器。 1.4 集群 集群是由一组独立的计算机系统构成的松耦合多处理器系统[2],通过网络实现进程间的通信。目前,实现分布式计算机集群的技术有负载均衡集群、高可用集群和科学计算集群。本文重点介绍负载均衡集群。负载均衡集群由两台或两台以上服务器组成,分前端负载调度和后端服务两部分。客户端用户的连接请求由前端依据负载均衡策略分配给后端服务器,后端服务器应答请求,并将请求内容返回用户。因而可知,后端服务器是客户端真正请求内容的服务器。与高可用服务集群不同,在负载均衡集群中,所有后端服务器都处于工作状态,都有可能对前端服务器的请求进行应答。 Nginx是利用反向代理服务器来实现负载均衡。如果学校采用Nginx作为Web服务器,可以阻挡外来黑客攻击,保证数据的安全性与网页内容的稳定性,还可有效解决网页打开速度慢、网页内容请求不到等问题,使学生能够更加方便快捷地访问学校网页。另外,使用负载均衡策略还可有效解决服务器资源浪费等问题。 2 Nginx代理服务器搭建 在Linux的Centos 7系统中搭建Nginx Web应用代理服务器[3],服务器集群架构分为前端和后端服务器[4-6]。前端Nginx服务器的IP为192.168.1.2,后端为Tomcat服务器,IP分别为192.168.1.4、192.168.1.5、192.168.1.6。其工作过程为:客户端浏览器发送请求,前端Nginx负载均衡服务器得到请求后,依据相应的负载均衡调度算法,将请求发送给后端Tomcat服务器。Tomcat服务器收到请求后进行响应,并将请求内容转发给Nginx服务器,最后Nginx服务器将响应内容发送给客户端用户浏览器,其拓扑图如图1所示。具体配置为: 系统环境: RHEL7 Linux Web服务器: 192.168.1.2 Nginx 192.168.1.4 Tomcat1 192.168.1.5Tomcat2 192.168.1.6 Tomcat3 2.1 Nginx Web服务器安装与使用 (1)安装Nginx所需要的依赖包:yum -y install gcc gcc-c++ make libtool* zlib* openssl openssl-devel pcre pcre-devel。 Nginx需要以下3个依赖包:zlib-1.2.8.tar.gz、pcre-8.21.tar.gz和openssl-1.0.1.tar.gz。 (2)启动Nginx。 [root@xixy ~]# /usr/local/nginx/sbin/nginx 然后启动nginx,/usr/local/nginx/sbin/nginx 回车即可。查看进程是否已启动: [root@xixy~]# ps -ef |grep nginx 在浏览器输入192.168.1.2后,出现下面的图片文字,则说明Nginx服务器安装成功。 (3)重启或关闭Nginx进程: [root@xixy~]# /usr/local/nginx/sbin/nginx?-s reload [root@xixy~]# /usr/local/nginx/sbin/nginx -s stop (4)将Nginx添加到开机启动: [root@xixy~]# echo"/usr/local/nginx/sbin/nginx">>/etc/rc.d/rc.local 2.2 Tomcat Web服务器安装与使用 Tomcat是网页应用服务器,主要功能是用于解析动态页面,常与Apache服务器和Nginx服务器配合搭建整个Http服务器端。Tomcat目前的最新版本为9.0。Tomcat主要用来解析JSP语言,所以安装Tomcat之前需要安装JDK (Java Development Kit),JDK是Java 语言的软件开发工具包。 IP:192.168.1.4 Tomcat Web 服务器的安装过程如下: (1)安装JDK。 (2)安装Tomcat1。首先,在官网下载Tomcat,这里下载的是apache-tomcat-7.0.27.tar.gz,下载完后解压: [root@xixy2 ~]# tar xf apache-tomcat-7.0.27.tar.gz [root@xixy2 ~]# mv apache-tomcat-7.0.27 /usr/local/tomcat 然后,启动Tomcat,命令为: [root@xixy2 ~]# /usr/local/tomcat/bin/startup.sh 通过命令ps-ef |grep tomcat 查看进程及端口是否存在,在浏览器中输入http://192.168.1.4:8080,还可以通过页面访问Tomcat默认测试页面。 最后,关闭Tomcat,命令为: [root@xixy2 ~]# /usr/local/tomcat/bin/shutdown.sh (3)安装IP为192.168.1.4 的Tomcat Web服务器。 (4)安装IP为192.168.1.6 的Tomcat Web 服务器。 2.3 Nginx Web与Tomcat Web服务器配置和整合 2.3.1 Nginx服务器配置 (1)编辑nginx.conf配置文件: [root@xixy ~]# vim /usr/local/nginx/conf/nginx.conf (2)指定负载均衡方式: upstream tomcat { server 192.168.1.4:8080; server 192.168.1.5:8080; server 192.168.1.6 :8080; } server { listen 80; server_name localhost; location / { root html; index index.html index.htm index.php; proxy_pass http://tomcat; } location ~ .*\.(php|jsp|cgi)?$ { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://tomcat;}} } 2.3.2 Tomcat Web服务器配置 (1)IP:192.168.1.4 Tomcat Web服务器。 创建自己的网页发布目录,执行以下命令: [root@xixy2 ~]# mkdir -p /usr/webapps/www 编辑vim /usr/local/tomcat/conf/server.xml,在最后前一行加以下内容: Tomcat发布目录内容: [root@xixy2]# vim index.jsp 测试01 |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。