国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于LNMPA架構的Web系統(tǒng)設計與實現(xiàn)

2014-04-29 06:09陳鐳
計算機時代 2014年8期

陳鐳

摘 要: 伴隨數(shù)字化、網(wǎng)絡化的快速發(fā)展,高校內涌現(xiàn)出眾多的Web系統(tǒng),這些Web系統(tǒng)參差不齊,安全性、易用性、可靠性等無法得到保障。把LAMP架構與LNMP架構各自的優(yōu)點結合在一起形成新的網(wǎng)站服務器架構LNMPA,分析了該架構的特點及優(yōu)勢。采用基于MVC設計模式的ThinkPHP框架設計并實現(xiàn)了一套通用Web系統(tǒng),該系統(tǒng)具備成本低、擴展靈活、性能穩(wěn)定、數(shù)據(jù)安全、抗并發(fā)能力強等顯著特點。

關鍵詞: Web系統(tǒng); LAMP架構; LNMP架構; LNMPA架構; ThinkPHP框架

中圖分類號:TP311 文獻標志碼:A 文章編號:1006-8228(2014)08-22-02

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 引言

伴隨著計算機網(wǎng)絡技術的迅猛發(fā)展,高校內涌現(xiàn)出各類信息平臺和應用系統(tǒng)。目前流行的眾多Web系統(tǒng)平臺無外乎有三類:ASP.NET(微軟.NET下Web開發(fā))平臺、J2EE(Java企業(yè)級開發(fā))平臺和LAMP(Linux+Apache+MySQL+PHP)平臺。因LAMP平臺具有操作簡易、成本低、擴展靈活、安全等特點和優(yōu)勢,其應用范圍越來越廣,從簡單的、中小型應用擴展到復雜的、大型的系統(tǒng)應用中,逐漸成為一種發(fā)展趨勢,已經(jīng)與J2EE平臺和ASP.NET商業(yè)軟件平臺并駕齊驅。越來越多的用戶、供應商和投資者意識到,使用LAMP開源軟件平臺構建、運行各種網(wǎng)絡應用變得更加具有競爭優(yōu)勢。無論從質量、性能,還是價格考慮,LAMP平臺都將成為高校信息化發(fā)展過程中所必須關注的。

1 LNMPA架構簡介

LNMPA是Linux,Nginx,MySQL,PHP和Apache組合而成的開放資源網(wǎng)絡平臺。

Linux是一套開源免費和自由傳播的操作系統(tǒng),是一個基于UNIX的多用戶、多任務、支持多線程和多CPU的操作系統(tǒng),是目前最流行的免費操作系統(tǒng)。代表版本有:centos、ubuntu、fedora等。

Nginx是一個小巧而高性能的HTTP和反向代理服務器,消耗資源少,支持并發(fā)連接數(shù)目多,反向代理效率高、靜態(tài)文件處理快。因其穩(wěn)定、功能豐富和低資源消耗而聞名。

MySQL是一種關系數(shù)據(jù)庫管理系統(tǒng),數(shù)據(jù)庫將數(shù)據(jù)存在不同的表中,增加了存取速度、提高了靈活性,MySQL用的是標準化SQL查詢語言。由于其體積小、速度快、成本低,開放源代碼,一般情況下中小型系統(tǒng)都愿意選擇MySQL作為數(shù)據(jù)庫系統(tǒng)。

PHP是目前最流行的編程腳本語言之一,簡單,輕便,開源免費并且功能強大。PHP支持各種主流數(shù)據(jù)庫,如MS SQL,Orcale,MySQL等,具有很好的跨平臺性,對Windows以及Linux有很好支持,不同平臺間代碼轉移也十分簡便。同時PHP有著成熟的面向對象體系,能適應大型項目的開發(fā)。

Apache(Apache HTTP Server)是Apache軟件基金會的一個開放源碼的Web服務器,可以在大多數(shù)的操作系統(tǒng)上運行,它快速、可靠,可通過簡單的模塊進行擴展,也可作為代理服務器來使用,因其開放源代碼,不斷有人完善新功能、新特性,Apache是目前最流行的Web服務器軟件。

雖然這些開放源代碼程序本身并不是專門設計成同另幾個程序一起工作的,但由于它們均免費開源,影響較大,擁有很多共同特點,就導致了這些組件經(jīng)常在一起使用,可構建出低成本、高效、擴展性強的LNMPA網(wǎng)站服務器架構。

2 LNMPA架構詳解

LAMP[1]或LNMP[2]的劣勢:Nginx是小巧而高效的Linux下Web服務器,跟Apache相比,它消耗資源更少,支持的并發(fā)連接更多,反向代理功能效率高、靜態(tài)文件處理更快等等,Nginx可以承受3萬以上的并發(fā)連接數(shù),相當于同等環(huán)境下Apache的10倍[3],但是它的動態(tài)頁面處理能力不如Apache軟件成熟。單獨使用Nginx處理大量動態(tài)頁面時易產(chǎn)生502錯誤,而Apache在高并發(fā)時對隊列的處理比FastCGI更加穩(wěn)定,Apache的mod_php效率比php-cgi更高且更成熟,對偽靜態(tài)支持也好,但是單獨使用Apache處理靜態(tài)頁面時,對內存的占用率會遠遠超過Nginx。

LNMPA[4]網(wǎng)站服務器架構,正是把LAMP與LNMP各自的優(yōu)點結合在一起而產(chǎn)生的新的網(wǎng)站服務器架構。圖1中的LNMPA架構把Nginx當作前端服務器,它能夠更快、更及時、使用更少系統(tǒng)資源來處理靜態(tài)頁面、圖片、js等文件,當客戶端請求訪問的是動態(tài)頁面時,再由Nginx反向代理給后端服務器Apache處理,Apache把處理好的結果再返回給Nginx。采用LNMPA架構更好地解決LNMP中由于PHP-FPM方面頻繁產(chǎn)生的502錯誤,同時又能夠以簡單的方式提供安全的多用戶、多站點環(huán)境,完全結合了兩種架構的優(yōu)點。

3 Web系統(tǒng)的設計與實現(xiàn)

3.1 ThinkPHP框架

ThinkPHP[5]是一個簡單、快速、兼容的輕量級PHP開發(fā)框架,遵循Apache2開源協(xié)議,主要是從Struts結構移植并做了改進、完善,同時也借鑒了其他優(yōu)秀框架和模式,使用面向對象和MVC三層架構模式,繼承了Struts的思想和標簽庫、RoR的ORM映射還有ActiveRecord模式,封裝了CURD操作和其他常用功能,采用單一入口模式,在緩存機制、模版引擎、認證機制和擴展方面等均有獨特的表現(xiàn)。

ThinkPHP能夠作為一整套開發(fā)解決方案,可以滿足開發(fā)中的大多數(shù)需求,其自身包含了底層架構、基類庫、數(shù)據(jù)庫訪問層、兼容處理、緩存機制、模板引擎、插件機制、角色認證、表單處理等常用的功能組件,并且跨平臺、跨版本,數(shù)據(jù)庫移植也比較方便,每個組件都經(jīng)過精心設計和完善,使用者在應用開發(fā)過程中只需要關注業(yè)務邏輯。

3.2 總體設計

MVC的核心思想是將應用程序的表現(xiàn)層和邏輯層進行分離。ThinkPHP是基于MVC設計模式的,MVC是一個抽象的概念,沒有十分明確的規(guī)定,ThinkPHP中的MVC分層次大致表現(xiàn)為:模型(M),模型的定義由Model層來完成??刂破鳎–),應用控制器,核心控制器和Action控制器都承擔了控制器的角色,Action控制器完成業(yè)務邏輯控制,應用控制器負責調度控制。視圖(V),由模板文件和View類組成,模板做到了完全和業(yè)務邏輯分離,可以獨立的制作和預覽。

一個完整的Web網(wǎng)站系統(tǒng)通常由前臺部分和后臺部分組成,前臺為內容展示和業(yè)務實現(xiàn)部分,后臺為系統(tǒng)管理部分。系統(tǒng)按模塊劃分又可以分為:登錄模塊、權限管理模塊,內容管理模塊、用戶管理模塊、菜單管理模塊、搜索模塊等等,不同模塊由不同功能的頁面組成。系統(tǒng)登錄時自動進行身份識別,按照訪問者的身份進入其相應的操作界面,管理員進入管理界面,用戶進入用戶界面。

用戶等級一般分為三類,其中管理員帳號擁有最高權限,高級用戶其次,擁有部分的管理權限,普通用戶的權限最低。

設計權限管理的步驟如下:判斷當前模塊的當前操作是否需要認證;如果需要認證并且尚未登錄,則跳到認證網(wǎng)關;如果已經(jīng)登錄,則判斷當前用戶是否具有訪問權限;通過委托認證進行用戶身份認證;獲取用戶的決策訪問列表。

內容管理模塊可概括為對數(shù)據(jù)庫的四個基本操作(CURD):創(chuàng)建、更新、讀取和刪除。CURD操作和連貫操作配合可變幻出更多的業(yè)務邏輯操作,從而實現(xiàn)Web系統(tǒng)豐富完善的功能。

菜單管理模塊是一個Web系統(tǒng)必不可少的部分,管理員、用戶根據(jù)需求定制一級菜單及其子菜單。

搜索是Web系統(tǒng)常見功能之一。搜索功能可實現(xiàn)對網(wǎng)站內容的檢索、迅速定位,高級檢索功能支持根據(jù)標題、創(chuàng)建時間、修改時間、發(fā)布人等條件精確篩選網(wǎng)站內容。

3.3 數(shù)據(jù)庫設計

數(shù)據(jù)庫是整個系統(tǒng)應用的根基,是軟件設計的起點,它起著決定性的作用,好的數(shù)據(jù)庫設計要遵循以下幾個原則。

⑴ 充分體現(xiàn)系統(tǒng)的需求,數(shù)據(jù)庫首先是為應用服務的,數(shù)據(jù)庫設計應該能滿足應用系統(tǒng)的業(yè)務需求,準確地表達數(shù)據(jù)與數(shù)據(jù)之間的關聯(lián)關系。

⑵ 保證數(shù)據(jù)的準確性、一致性,通過主鍵、外鍵、非空、限制、惟一索引等保證數(shù)據(jù)的健壯。

⑶ 提高數(shù)據(jù)的查詢效率,通過合理表結構,安排物理存儲分區(qū)、增加索引等方式,提高數(shù)據(jù)的讀取速度,提高數(shù)據(jù)查詢的效率。

⑷ 有良好的擴展性能,在必要的時侯能根據(jù)需求擴展數(shù)據(jù)結構。

4 結束語

本文比較并分析了LAMP架構和LNMP的優(yōu)缺點,重點介紹了新的LNMPA架構Web系統(tǒng)的特性及其優(yōu)勢,設計并實現(xiàn)了一套通用Web系統(tǒng)。從部署以后長期運行的效果看,該系統(tǒng)穩(wěn)定、安全、抗并發(fā)能力突出,適用性廣泛。因LNMPA架構具備開源免費,綜合成本低廉的特性,在高校Web應用系統(tǒng)中具有很大的推廣空間。

參考文獻:

[1] 周珊.基于LAMP架構的高校學生工作考核系統(tǒng)設計與實現(xiàn)[D].電

子科技大學碩士學位論文,2013.

[2] 曾棕根.一種基于LNMP的Moodle 2分布式計算架構[J].計算機時

代,2013.6:5-8

[3] 凌質億,劉哲星,曹蕾.高并發(fā)環(huán)境下Apache與Nginx的I/O性能比

較[J].計算機系統(tǒng)應用,2013.6:204-208

[4] LNMPA[EB/OL].

fr=aladdin>.

[5] 楊浩.基于ThinkPhp框架的校園網(wǎng)絡設備管理系統(tǒng)設計與實現(xiàn)[D].

西北大學碩士學位論文,2012.