APP下载

基于LNMP架构搭建EduSoho开源网校的实践探究

2023-08-26吴冬晨劳汉平

电脑知识与技术 2023年19期
关键词:网校域名开源

吴冬晨 劳汉平

关键词:Linux;服务器;Nginx;Php-Fpm;MySQL;EduSoho开源网校;性能优化

当下,有很多在线教育平台,其中EduSoho系统是一款结合云计算服务的开源在线教育软件,是一款B2C独立网校系统,具有在线教学、在线作业、在线考试、资讯分享、小组讨论、网校管理等功能,适合学校、企业及个人快速构建个性化在线网络课堂平台。EduSoho开源网校系统是基于PHP语言及MySQL数据库架构开发的跨平台开源程序,有商业版和开源版。开源版免费提供给非商业用途用户使用,大幅降低了教育机构及个人进入在线教育的门槛,从而使学校建立具有自己独立域名和独立品牌的在线教育网站。

1 网站服务器的选型

在校园网内选择自行安装,放在服务器生产环境(也就是正规对外服务的),使用开发商推荐的标准配置(Linux + Nginx + Php-Fpm + MySQL) 。EduSoho 开源网校的服务对象主要是校内师生,大部分师生通过校园网进行访问和学习。校园网已建成万兆骨干网络核心,主要节点已经实现千兆到电脑,支持Wi-Fi6 协议的高速无线AP已经基本覆盖校园,同时拥有千兆对等带宽出口,在良好的校园网环境下,实现师生们在线教育学习的需求,但教学平台和教学资源不充足已经成为急需解决的问题。

1.1 网站服务器选择的因素

1) 稳定性和安全性结合。网站常常宕机,内容莫名消失,这都是因为服务器质量差或者受到网络攻击。如果网站常常被攻击,则可以选择专业防火墙,专业防御DDoS和CC攻击,以保证网站的正常使用。

2) 灵活性。如果在线教育网站流量变化大,业务快速发展,则可以选择开源的OpenStack云计算服务器,OpenStack是一种简单高效、安全可靠、处理能力可弹性伸缩的云计算服务。通过搭建OpenStack私有云计算服务器为网站提供弹性收缩的服务器功能,可弹性扩展的资源用量,为网站业务在高峰期的顺畅保驾护航,节省IT运营成本,提高资源的有效利用率。

3) 性价比。不管是个人还是学校,购买服务器的第一考虑的要素大多都是性价比。高性价比的服务器能够为学校省去一笔不小的开支,而价格主要是基于服务器的配置、机房设施等角度进行比较,然后企业再选择性价比最高的网站服务器进行使用。

EduSoho开源网校建站服务器的选择,主要还是根据网站类型、网站内容、网站访问量等因素,按需选择合适的服务器,以免购买的服务器与需求不匹配,造成资源浪费。

1.2 物理服务器建站的配置

物理服务器是指独立服务器,也就是指物理上的单独服务器,物理服务器的构成包括处理器、硬盘、内存、系統总线、陈列卡、网卡、散热器等,与通用X86计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高[1]。相对于云主机(云服务器),物理服务器硬件为自行采购,性能独享,但需要专业技术人员进行运维,比较适用于使用时间长的网站。

在线教育网校这类网站数据量多、访问量大,且加上视频、图片资源多,访问速度要快,所以对服务器的配置要求较高。

在CPU的选型方面,可以考虑Intel的E5系列的CPU,比如E5-2696v4 这款CPU 拥有14nm 的制造工艺,22核44线程,组成双路就可以达到44核88线程,可以配合后期服务器Nginx和Php-Fpm多进程进行运算。

在主板的选型方面,根据CPU确定主板采用Intel 的C612芯片组,丰富的PCIE通道和插槽能为NAS存储和万兆甚至40G网络提供支撑,使得运维效率大大提升。

在内存的选型方面,由于上述CPU 最大支持DDR4的2400MHz主频的内存条,可以采用单条64G 共8条内存,总容量达到512G内存,8条内存给两路CPU 刚好组成四通道,加快了CPU 与内存的数据交换。

在存储的选型方面,分为系统盘、程序盘、数据盘三部分,系统盘是装载操作系统的,要求速度快,可以采用NVME 协议的固态硬盘;程序盘是用来存储Nginx程序、Php-Fpm程序、MySQL数据库程序、网站源码程序等数据,可以采用MLC企业级固态硬盘,同时组成RAID10阵列;数据盘是用来存视频、图片等资源,同时也可以用来备份数据,要求容量要大,速度也要快,可以采用多个大容量硬盘,通过组成RAID10阵列,可以保障数据的安全可靠,加快了读写速度,同时也可以支持以后容量的扩展。

在网卡的选型方面,根据校园网的结构和带宽,可以选择支持4口万兆的光口网卡,支持VLAN、QOS 策略、流量控制、统一网络(iSCSI,FCoE和LAN) 和虚拟化(VMDq和SR-IOV) 等特性,双线万兆与校园骨干网络交换机组成聚合链接,对上传、下载进行分流。

2 网站建设前期的准备

搭建EduSoho开源网校平台前期要准备的工作包括域名的注册、域名备案等工作,这些工作完成后才可以搭建网站。

2.1 域名注册和备案

购买域名且域名通过实名认证后才能备案,备案后域名才能用作EduSoho开源网校地址,才能申请支付接口和第三方登录接口。首先到域名注册商平台进行域名注册,然后联系网络接入商进行网站备案和IP备案,网站的出口IP默认不开通80端口和443端口,这时需要到网络接入商申请备案,一般情况下,提交ICP备案资料需要等待20个工作日左右,ICP备案完成后由网络接入商开通80端口和443端口。为了网络安全,需要到公安机关互联网站安全管理服务平台进行公安备案,并且提交备案资料到当地的公安网警部门进行审核。

2.2 微信公众平台服务号

如果EduSoho开源网校平台需要微信登录功能,就要申请微信公众平台服务号并进行企业认证,微信公众平台服务号的主体不能是个人,服务号认证成功后再到微信开放平台进行注册并申请认证,然后把服务号绑定到微信开放平台,就可以获得开发者ID和API接口,实现微信登录。开通微信登录后,EduSoho 开源网校支持使用微信号在手机端微信App内快捷注册或登录EduSoho网站。

如果需要钉钉登录,也需要申请企业钉钉并进行认证,用企业钉钉管理员账号登录钉钉开发者平台,在“应用开发-移动接入应用-登录”中通过“创建扫码登录应用授权”以获取App ID实现EduSoho网站的钉钉登录。

2.3 申请SSL 证书

SSL证书是数字证书的一种,由权威数字证书机构验证网站身份后颁发,可实现浏览器和网站服务器数据传输加密。使用SSL证书后,网站使用https访问,符合等保2.0中“信息传输要进行加密”的合规检查。可以在各个云服务平台中申请DV域名型证书,每次申请期限为一年。

3 服务器操作系统的优化

运行PHP应用,Linux性能比Windows系统快好几倍,为了获得更好的性能,服务器安装Ubuntu 20.04 服务器操作系统。通过优化Ubuntu服务器网络连接数,解决高并发Socket最大连接数限制。网络连接数的限制原理是TCP网络链路通过打开文件句柄来实现的,然后提升TCP网络连接数就是提升对文件句柄的限制。

第一步,修改/etc/security/limits.conf文件。在lim? its.conf文件中添加如下行[2](*指代系统用户名),修改Linux系统对用户的关于打开文件句柄的软限制和硬限制:

4 Nginx 的安装与优化

Nginx 是一款高性能的web服务器,其高性能是因为利用了Linux内核中的epoll机制,让CPU尽可能地运作起来,没有阻塞,并且其采用多进程单线程的模式,将CPU与worker进程绑定,尽量减少CPU的上下文切换。

4.1 Nginx 的安装

安装Nginx使用以下命令:

ssuuddoo aapptt iunpsdtaaltle nginx unzip -y

4.2 Nginx 的配置优化

第一步,配置/etc/nginx/nginx. conf 文件,优化worker工作进程,在开头增加如下3行:

5 MySQL 的安装与优化

由于EduSoho开源网校是在MySQL 5.7版本下开发的,对MySQL 5.7版本兼容性较好,虽然MySQL 8.0 也可以安装和使用,但EduSoho程序在日后的在线升级过程中可能会对MySQL进行数据表操作,有些升级命令对MySQL 8.0不是十分友好,严重会导致数据库损坏锁定,所以需要安装MySQL 5.7版本。

5.1 MySQL 数据库的安装

Ubuntu 20.04默认支持MySQ L 8.0版本,若要安装MySQL 5.7版本则需要配置安装源

5.2 MySQL 数据库的配置优化

MySQL性能优化包括查询速度优化、数据库结构优化、MySQL服务器优化等。MySQL性能优化就是通过合理安排资源,调整系统参数使MySQL运行更快、更节省资源。以32G内存为例,主要是优化查询、索引的缓冲区大小,同时也要限制MySQL的内存占用,不能占用过多,以免引起其他程序没有内存可用。在配置文件/etc/mysql/mysql.conf.d/mysqld.cnf 中对相关参数进行优化,进入配置文件在[mysqld]字段里进行添加或修改:

MySQL 的调优参数较多,以上是主要的参数优化,根据CPU和内存的配置来调整,一方面通过优化文件系统缓存,提高磁盘I/O的读写速度,另一方面通过优化操作系统调整策略,提高MySQL在高负荷情况下的负载能力,还可以通过优化表结构、索引、查询语句等方法使查询响应更快[5]。

6 PHP 的安裝与优化

6.1 PHP 的安装

因为EduSoho 开源网校程序企培版最高支持PHP 7.3,所以安装PHP版本选择7.3版。

第一步,安装PHP软件源,命令如下:

6.2 PHP 和Php-Fpm 的配置优化

PHP 中的FPM是一种快速进程管理器,在服务器上运行的 PHP 并不是单个进程,而是由这个FPM进程管理器派生、控制和终止的一些PHP 进程。在Nginx处理成千上万的连接时,如果PHP设置不合理,那么将浪费很多资源,因为Nginx必须等待PHP完成当前处理之后才可以接受下一个请求!

以上对PHP的优化是对相关配置文件中的主要参数进行合理调整和设置,包括内存优化、OPcache性能加速、文件上传、执行时间、处理会话、缓冲输出、安全等方面进行调整和设置,既要在性能上进行优化,还要在安全方面进行优化。

7 Edusoho 开源网校程序的优化

7.1 EduSoho 开源网校的本地化部署

按照EduSoho开源网校安装程序完成安装就可以使用,但上传视频、播放视频都会有卡顿的现象,原因是程序在上传、播放等应用时调用了远程SDK插件,无论内网使用或是资源安全,都应实现程序的本地化部署,主要是把远程SDK插件调用改为本地SDK插件调用。

第一步,把SDK文件放在EduSoho开源网校程序的web/service-cdn目录下。

第二步,在app/data目录下新建dev.lock文件,开启开发者模式。

第三步,进入网校地址/app_dev.php/admin/setting/ sdeervveilcoep-ecrd修n/”改。配置,把SDK的CDN地址改为“域名/第四步,删除app/data目录下的dev.lock文件,关闭开发者模式。

第五点,清理缓存(命令:rm -rf ./app/cache/*) 使程序的本地化部署生效。

7.2 优化视频的播放

本地化部署 EduSoho开源网校后,在播放视频时可能会出现网络超时、播放错误等异常问题,这是程序调用的VideoPlayer视频播放器会对本地视频在数据丢失时,再次进行数据获取,每次消耗一次鉴权次数,次数为0时就会出现播放出错的问题,因此修改这个次数即可。

经过优化程序的源码之后,网站的打开视频和播放视频都较为流畅。

7.3 优化视频的制作

本地化部署的EduSoho开源网校,所有视频存储在本地硬盘中,也可以引用优酷、BiLiBiLi和爱奇艺等在线视频来播放,在本地视频中,必须使用流式MP4 文件格式,给MP4文件加入Hint索引,EduSoho开源网校程序就可以实现边下载边播放视频。

第一步,用“格式工厂”软件重新转码输出MP4视频,视频编码格式为AVC(H264) ,音频编码格式:AAC。

第二步,在“格式工厂”的转码“选项”中,找到“高级”页面,把“创建PSP MP4 THE”和“创建Hint Track”两个选项参数选中,然后开始转码。

第三步,利用转换好的视频,上传到EduSoho开源网校中,当打开视频就可以实现视频的顺滑播放。

8 结束语

EduSoho开源网校程序的安装比一般的应用系统复杂,但同时安全系数也提升了若干倍,尤其是在视频保护方面。由于EduSoho开源网校程序是单入口的web 应用,所有的请求都从app.php 文件进入,并且web目录下存放的都是公开文件,比如头像文件、js文件、css文件等,其他文件则分别在app,src等非公开目录。

经过硬件升级,并通过对Ubuntu、Nginx、MySQL、Php-Fpm等配置文件的优化,提升了EduSoho开源网校程序的高并发访问能力,增强了网站平台的可用性。在近几年的实践应用中,新建了一批线上线下融合教学的精品课程,比如《计算机应用基础》《Linux操作系统》《网络技术基础》《全国计算机等级考试一级WPS考证培训》《1+X网络系统软件应用与维护考证培训》《收银员职业技能等级考证培训》《基础会计》《财务会计》等课程,为微课教学、慕课学习、翻转课堂等教学方式方法提供技术平台支撑,积累了一些优质的教学资源。在当今时代,继续通过EduSoho开源网校的深度应用中,结合“教、学、测、评、练、管”的在线教学闭环,增强学生的学习兴趣,提升学生的学习效果,通过线上线下融合式教学持续建设优质的教学资源。

猜你喜欢

网校域名开源
五毛钱能买多少头牛
Combosquatting域名抢注的测量研究
华为应用市场全面接入沪江网校产品
如何购买WordPress网站域名及绑定域名
“火种计划”启动 扶持小微网校
大家说:开源、人工智能及创新
开源中国开源世界高峰论坛圆桌会议纵论开源与互联网+创新2.0
开源计算机辅助翻译工具研究
腾讯八百万美元收购域名
远程直播教学模式下语文课堂教学效益均衡化评析——以四川省成都市第七中学“网校”教学为例