APP下载

基于Linux平台的Web服务器集群架构设计

2022-11-16荣露威陈丽琼

无线互联科技 2022年3期
关键词:网网代理服务器静态

荣露威,陈丽琼

(湖南科技学院 智能制造学院,湖南 永州 425199)

0 引言

业务的稳定和快速是每个电商平台都追求的目标。在网上流行的购物狂欢节,购物网站在短时间内要处理人们大量的数据请求,这对服务器的压力是巨大的,如果服务器承受不了这样的访问量,导致宕机,业务不能进行,对于电商企业的损失是巨大的。所以开发研究出稳定高性能的新架构是非常有意义的[1]。

1 服务器架构设计和实现

1.1 服务器架构需求分析

本文设计的是Web服务器集群,首先应该满足现代企业对自身网站短时间内能够承受大量的访问请求,所以针对这个需求,采用负载均衡架构设计,使用一台Nginx服务器作为反向代理服务器,将其置于架构的最前面,只用于接收外部的访问请求,并且通过配置算法分发给多个下级服务器处理,而自身并不参与请求处理。

企业必定要求业务有较高的稳定性,首先除了有情况维护之外,网站的运行一定是7×24不间断的,对于这样的需求,应当使用高可用设计保证架构的稳定性,上述提到的Nginx反向代理服务器,作为对外表现为Web服务器的代理服务器,结构的单节点处肯定要承受比较大的压力,单节点就要考虑单点故障的问题。在结构负载较大可能导致单节点出现宕机,需要设计另一台Nginx反向代理服务器作为备用,一台作为主,两者用heartbeat相连。当主故障时,Heatbeat启动,资源和进程自动切换到备用机器上,保证业务继续进行[2]。

1.2 总体结构设计

结构设计总体分为两部分,公司内网的服务器和外网的客户端。公司内网采用私有地址,以Nginx作为反向代理服务器,保证内网服务器安全,单出入口有利于数据监控和访问控制。客户端模拟使用外网网段,Nginx代理服务器上应当有两个网卡,一个配置外网网段,一个网卡配置内网网段,用来连通内外网。Nginx处理客户端发来的请求,再分发给下级的多个请求处理服务器,首先判断是什么种类的访问请求,动态还是静态,当是静态时直接将请求分发给Squid处理,其他请求则直接分发给Web服务器处理。在将请求交给Squid静态加速服务器时使用加权轮询函数进行分发,再加上URL_Hash分发函数,来自同一个URL的请求都会调取给同一个后端去处理,以提高后台缓存数据命中率[3]。

1.3 架构实现

1.3.1 主干架构LNMP搭建

Linux平台使用Redhat6.5版本系统,Nginx在这个结构中作为HTTP使用,MYSQL作为数据库,PHP作为Web界面动态处理器。大体结构处理流程如下:

收到外部访问请求,若是请求静态数据,Nginx直接返回静态页面,若有动态数据,比如账号密码,交给PHP执行网页动态数据代码,再通过接口与数据库进行数据请求,处理好的数据返回给客户端,如此就完成一次动态请求处理。第一,搭建前环境准备;第二,安装MySQL;第三,编译安装PHP;第四,编译安装Nginx[4]。

1.3.2 部署Squid静态加速服务器及Nginx反向代理服务器

Nginx反向代理主要作用是分发访问请求给下一级的Squid静态加速服务器以及代理后端Web对外表现为Web服务器,配置文件中设置与Squid服务器连接使用3128端口,两个Squid服务器的分发权重都为1,表示两者都等量轮询分发,后端代理Web的IP地址为192.168.1.40,端口80。

1.3.3 实现MySQL主从备份

MySQL支持单向,异步,实时复制,复制过程中一个服务器充当主服务器,而一个或多个其他服务器充当从服务器。复制的过程如下:(1)slave端的IO线程连上master端,发出请求;(2)master端返回给slave端,bin log文件名和位置信息;(3)IO线程把master端的bin log内容依次写到slave端relay bin log里,并把master端的bin-log文件名和位置记录到master.info里;(4)salve端的sql线程,检测到relay bin log中内容更新,就会解析relay log里更新的内容,并执行这些操作。也就是说salve执行和master一样的操作而达到数据同步的目的。

1.3.4 部署Heartbeat心跳线

心跳:主和备每隔一定时间会有一个通信信息,称之为心跳,主要作用的就是备机监控主机是否存活,若超过设置时间没有收到通信信息则视为主机死亡,备机接管主机资源代替其完成工作。心跳线:串口(console)或者RJ-45连接。(1)台Nginx代理服务器上安装Heartbeat;(2)先只在主Nginx代理服务器上进行配置,配完后,再拷到备用服务器上;(3)修改认证信息配置文件;(4)修改资源配置文件;(5)修改备用nginx服务器上配置。

1.4 测试

第一,在主干结构LNMP测试中,从用户角度访问网页,不管是静态页面还是动态页面,还有两种组合的Discuz论坛页面,都能进行访问,则说明主干结构完整并达到预期基本功能。第二,架构性能优化模块的测试。在Memcache模块测试中,先用PHP代码写好一个测试页面,在访问之后Memcache应该对其进行了缓存,关闭之后应该不能进行解析访问,测试结果也和预期的一样,表明Memcache功能正常。第三,Opcache模块测试,这个测试主要是进行模块性能测试,测试在模块有无开启和不同并发量的情况下,服务器的处理速度,通过对比分析测试结果可以看出,有Opcache的情况下,处理速度更快,而且在并发量越大的情况下差距越明显。第四,Squid静态加速模块,在通过Squid访问了一个从未访问的页面之后,其中的静态信息会被Squid缓存在内存中,下次访问则直接调取内存中的静态信息,加快访问速度,分析Squid的命中测试结果之后,发现命中静态信息,表示Squid功能运行正常,再关闭Squid之后,访问页面无法解析到静态信息,也表示了Squid正常运行和工作方式。

2 结语

本文主要目的是得到一个Linux系统下的新型Web服务器架构解决方案。经过研究如今流行的LAMP和LNMP结构 ,了解其中的工作原理,最终完成了一个能够部署与企业生产环境中的Web服务器集群解决方案。

猜你喜欢

网网代理服务器静态
最新进展!中老铁路开始静态验收
胡晓光的诗
猜猜他是谁
地铁信号系统中代理服务器的设计与实现
IP地址隐藏器
AWS推出专为旗下服务器设计的定制芯片
具7μA静态电流的2A、70V SEPIC/升压型DC/DC转换器
临汾市地震台网网内地震震级与山西省地震台网的对比研究
50t转炉静态控制模型开发及生产实践
一种容侵系统的设计