网络工程师论文基于LNMPA架构的Web系统设计
所属栏目:计算机网络论文
发布时间:2014-09-23 13:19:39 更新时间:2014-09-23 13:28:38
摘 要: 伴随数字化、网络化的快速发展,高校内涌现出众多的Web系统,这些Web系统参差不齐,安全性、易用性、可靠性等无法得到保障。把LAMP架构与 LNMP架构各自的优点结合在一起形成新的网站服务器架构LNMPA,分析了该架构的特点及优势。采用基于MVC设计模式的ThinkPHP框架设计并实现了一套通用Web系统,该系统具备成本低、扩展灵活、性能稳定、数据安全、抗并发能力强等显著特点。
关键词: 网络工程师论文,Web系统,LAMP架构,LNMP架构,LNMPA架构,ThinkPHP框架
Design and implementation of Web system based on LNMPA architecture
Chen Lei
(Dept. of Library, Nanjing Audit University, Nanjing, Jiangsu 211815, China)
Abstract: With the rapid development of digital and networking, Web systems emerges in universities. However, these Web systems cannot guarantee the safety, convenience and reliability. In this paper, a new web server architecture LNMPA is created by the combination of the LAMP architecture and LNMP architecture. The characteristics and advantages of the architecture are analyzed. A general Web system based on MVC design model ThinkPHP framework is designed and implemented. It has advantages including low cost, high flexibility, stable performance, data security, anti-concurrent capacity.
Key words: Web system; LAMP architecture; LNMP architecture; LNMPA architecture; ThinkPHP framework
0 引言
伴随着计算机网络技术的迅猛发展,高校内涌现出各类信息平台和应用系统。目前流行的众多Web系统平台无外乎有三类:ASP.NET(微软.NET下 Web开发)平台、J2EE(Java企业级开发)平台和LAMP(Linux+Apache+MySQL+PHP)平台。因LAMP平台具有操作简易、成本低、扩展灵活、安全等特点和优势,其应用范围越来越广,从简单的、中小型应用扩展到复杂的、大型的系统应用中,逐渐成为一种发展趋势,已经与J2EE 平台和ASP.NET商业软件平台并驾齐驱。越来越多的用户、供应商和投资者意识到,使用LAMP开源软件平台构建、运行各种网络应用变得更加具有竞争优势。无论从质量、性能,还是价格考虑,LAMP平台都将成为高校信息化发展过程中所必须关注的。
1 LNMPA架构简介
LNMPA是Linux,Nginx,MySQL,PHP和Apache组合而成的开放资源网络平台。
Linux是一套开源免费和自由传播的操作系统,是一个基于UNIX的多用户、多任务、支持多线程和多CPU的操作系统,是目前最流行的免费操作系统。代表版本有:centos、ubuntu、fedora等。
Nginx是一个小巧而高性能的HTTP和反向代理服务器,消耗资源少,支持并发连接数目多,反向代理效率高、静态文件处理快。因其稳定、功能丰富和低资源消耗而闻名。
MySQL是一种关系数据库管理系统,数据库将数据存在不同的表中,增加了存取速度、提高了灵活性,MySQL用的是标准化SQL查询语言。由于其体积小、速度快、成本低,开放源代码,一般情况下中小型系统都愿意选择MySQL作为数据库系统。
PHP是目前最流行的编程脚本语言之一,简单,轻便,开源免费并且功能强大。PHP支持各种主流数据库,如MS SQL,Orcale,MySQL等,具有很好的跨平台性,对Windows以及Linux有很好支持,不同平台间代码转移也十分简便。同时PHP有着成熟的面向对象体系,能适应大型项目的开发。
Apache(Apache HTTP Server)是Apache软件基金会的一个开放源码的Web服务器,可以在大多数的操作系统上运行,它快速、可靠,可通过简单的模块进行扩展,也可作为代理服务器来使用,因其开放源代码,不断有人完善新功能、新特性,Apache是目前最流行的Web服务器软件。
虽然这些开放源代码程序本身并不是专门设计成同另几个程序一起工作的,但由于它们均免费开源,影响较大,拥有很多共同特点,就导致了这些组件经常在一起使用,可构建出低成本、高效、扩展性强的LNMPA网站服务器架构。
2 LNMPA架构详解
LAMP[1]或LNMP[2]的劣势:Nginx是小巧而高效的Linux下Web服务器,跟Apache相比,它消耗资源更少,支持的并发连接更多,反向代理功能效率高、静态文件处理更快等等,Nginx可以承受3万以上的并发连接数,相当于同等环境下Apache的10倍[3],但是它的动态页面处理能力不如Apache软件成熟。单独使用Nginx处理大量动态页面时易产生502错误,而Apache在高并发时对队列的处理比FastCGI更加稳定,Apache的mod_php效率比php-cgi更高且更成熟,对伪静态支持也好,但是单独使用Apache处理静态页面时,对内存的占用率会远远超过Nginx。 LNMPA[4]网站服务器架构,正是把LAMP与LNMP各自的优点结合在一起而产生的新的网站服务器架构。图1中的LNMPA架构把Nginx当作前端服务器,它能够更快、更及时、使用更少系统资源来处理静态页面、图片、js等文件,当客户端请求访问的是动态页面时,再由Nginx反向代理给后端服务器Apache处理,Apache把处理好的结果再返回给Nginx。采用LNMPA架构更好地解决LNMP中由于PHP-FPM方面频繁产生的 502错误,同时又能够以简单的方式提供安全的多用户、多站点环境,完全结合了两种架构的优点。
3 Web系统的设计与实现
3.1 ThinkPHP框架
ThinkPHP[5]是一个简单、快速、兼容的轻量级PHP开发框架,遵循Apache2开源协议,主要是从Struts结构移植并做了改进、完善,同时也借鉴了其他优秀框架和模式,使用面向对象和MVC三层架构模式,继承了Struts的思想和标签库、RoR的ORM映射还有 ActiveRecord模式,封装了CURD操作和其他常用功能,采用单一入口模式,在缓存机制、模版引擎、认证机制和扩展方面等均有独特的表现。
ThinkPHP能够作为一整套开发解决方案,可以满足开发中的大多数需求,其自身包含了底层架构、基类库、数据库访问层、兼容处理、缓存机制、模板引擎、插件机制、角色认证、表单处理等常用的功能组件,并且跨平台、跨版本,数据库移植也比较方便,每个组件都经过精心设计和完善,使用者在应用开发过程中只需要关注业务逻辑。
3.2 总体设计
MVC的核心思想是将应用程序的表现层和逻辑层进行分离。ThinkPHP是基于 MVC设计模式的,MVC是一个抽象的概念,没有十分明确的规定,ThinkPHP中的MVC分层次大致表现为:模型(M),模型的定义由Model层来完成。控制器(C),应用控制器,核心控制器和Action控制器都承担了控制器的角色,Action控制器完成业务逻辑控制,应用控制器负责调度控制。视图(V),由模板文件和View类组成,模板做到了完全和业务逻辑分离,可以独立的制作和预览。
一个完整的Web网站系统通常由前台部分和后台部分组成,前台为内容展示和业务实现部分,后台为系统管理部分。系统按模块划分又可以分为:登录模块、权限管理模块,内容管理模块、用户管理模块、菜单管理模块、搜索模块等等,不同模块由不同功能的页面组成。系统登录时自动进行身份识别,按照访问者的身份进入其相应的操作界面,管理员进入管理界面,用户进入用户界面。
用户等级一般分为三类,其中管理员帐号拥有最高权限,高级用户其次,拥有部分的管理权限,普通用户的权限最低。
设计权限管理的步骤如下:判断当前模块的当前操作是否需要认证;如果需要认证并且尚未登录,则跳到认证网关;如果已经登录,则判断当前用户是否具有访问权限;通过委托认证进行用户身份认证;获取用户的决策访问列表。
内容管理模块可概括为对数据库的四个基本操作(CURD):创建、更新、读取和删除。CURD操作和连贯操作配合可变幻出更多的业务逻辑操作,从而实现Web系统丰富完善的功能。
菜单管理模块是一个Web系统必不可少的部分,管理员、用户根据需求定制一级菜单及其子菜单。
搜索是Web系统常见功能之一。搜索功能可实现对网站内容的检索、迅速定位,高级检索功能支持根据标题、创建时间、修改时间、发布人等条件精确筛选网站内容。
3.3 数据库设计
数据库是整个系统应用的根基,是软件设计的起点,它起着决定性的作用,好的数据库设计要遵循以下几个原则。
⑴ 充分体现系统的需求,数据库首先是为应用服务的,数据库设计应该能满足应用系统的业务需求,准确地表达数据与数据之间的关联关系。
⑵ 保证数据的准确性、一致性,通过主键、外键、非空、限制、惟一索引等保证数据的健壮。
⑶ 提高数据的查询效率,通过合理表结构,安排物理存储分区、增加索引等方式,提高数据的读取速度,提高数据查询的效率。
⑷ 有良好的扩展性能,在必要的时侯能根据需求扩展数据结构。
4 结束语
本文比较并分析了LAMP架构和LNMP的优缺点,重点介绍了新的LNMPA架构Web系统的特性及其优势,设计并实现了一套通用Web系统。从部署以后长期运行的效果看,该系统稳定、安全、抗并发能力突出,适用性广泛。因LNMPA架构具备开源免费,综合成本低廉的特性,在高校Web应用系统中具有很大的推广空间。
参考文献:
[1] 周珊.基于LAMP架构的高校学生工作考核系统设计与实现[D].电
子科技大学硕士学位论文,2013.
[2] 曾棕根.一种基于LNMP的Moodle 2分布式计算架构[J].计算机时
代,2013.6:5-8
[3] 凌质亿,刘哲星,曹蕾.高并发环境下Apache与Nginx的I/O性能比
较[J].计算机系统应用,2013.6:204-208
[4] LNMPA[EB/OL]. fr=aladdin>.
[5] 杨浩.基于ThinkPhp框架的校园网络设备管理系统设计与实现[D].