999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

利用反向代理服務(wù)器對基于Web的選課系統(tǒng)的性能優(yōu)化

2020-11-13 03:38:57黃聰穎滕建
微型電腦應(yīng)用 2020年10期
關(guān)鍵詞:用戶系統(tǒng)

黃聰穎 滕建

摘要:多數(shù)高校已建立以“客戶服務(wù)器”為通信模型的多個信息化系統(tǒng),但教務(wù)管理等業(yè)務(wù)系統(tǒng)仍存在短時間突發(fā)訪問集中、訪問量大導致服務(wù)器響應(yīng)緩慢甚至宕機情況發(fā)生。從系統(tǒng)架構(gòu)優(yōu)化的角度,部署Caddy開源網(wǎng)頁服務(wù)器作為反向代理服務(wù)器,通過緩存加快用戶訪問速度,保障業(yè)務(wù)系統(tǒng)服務(wù)器安全。在抗擊新型冠狀病毒肺炎期間,為解決校外師生集中訪問校內(nèi)資源的需求,緩解VPN壓力,通過開放網(wǎng)絡(luò)防火墻中反向代理服務(wù)器而非業(yè)務(wù)系統(tǒng)服務(wù)器的80、443等端口向校外師生提供網(wǎng)頁服務(wù),實現(xiàn)了在保障業(yè)務(wù)系統(tǒng)服務(wù)器安全的前提下“停課不停教、不停學”。

關(guān)鍵詞:選課系統(tǒng);Caddy;緩存;HTTP/2;TLS1.3

中圖分類號:TP311

文獻標志碼:A

WebbasedCourseSelectionSystemPerformanceOptimizeviaReverseProxyServer

HUANGCongying1,TENGJian2

(1.SchoolofMathematicsandPhysics;2.CenterofInformationScience&Technology,

BeijingUniversityofChemicalTechnology,Beijing100029,China)

Abstract:Manyinformationsystemswhichtake“clientserver”asthecommunicationmodelhavebeensetupincollegesanduniversities.However,therearesomeproblemsinbusinesssystemssuchascourseselectionsystemstillhaveshorttermobstructedduetosuddenaccessconcentrationandthelargeamountofaccesses,resultinginslowresponseorevendowntimeoftheserver.Inthispaper,fromtheperspectiveofsystemarchitectureoptimization,CaddyWebServerisdeployedasareverseproxyservertospeedupuseraccessspeedandensurethesecurityofbusinesssystemserver.DuringthefightagainstCOVID19,inordertosolvetheneedsofoutercampusteachersandstudentstoconcentrateonaccessingschoolresources,alleviatethepressureofVPN,thedesigncanprovideWebservicestooutercampusteachersandstudentsthroughthe80and443portsofreverseproxyserverinsteadofthebusinesssystemserver.

Keywords:courseselectionsystem;Caddyserver;cache;HTTP/2;TLS1.3

0引言

概述通過網(wǎng)絡(luò)進行選課是教學管理現(xiàn)代化、信息化的體現(xiàn)之一,但是選課系統(tǒng)又有其特殊性——每個學生都想盡快的選到自己心儀的課程,這就導致了在開始選課的前幾個小時會出現(xiàn)短時間大量學生同時訪問選課系統(tǒng)的情況,從而出現(xiàn)選課系統(tǒng)響應(yīng)緩慢,無法加載的現(xiàn)象,見此情形學生們更會繼續(xù)刷新導致選課系統(tǒng)持續(xù)高負載,形成惡性循環(huán)[1]。

北京化工大學一貫重視本科和研究生教務(wù)管理信息化建設(shè),不斷提升教務(wù)管理工作的質(zhì)量和水平。學校本科教務(wù)管理系統(tǒng)于2004年上線運行,于2016年進行系統(tǒng)版本升級,研究生管理系統(tǒng)于2013年上線。兩系統(tǒng)都采用B/S架構(gòu),滿足學分制培養(yǎng)、通識教育培養(yǎng)模式,支持校院兩級管理模式,具有培養(yǎng)方案管理、教學計劃管理、學籍管理、排課管理、成績管理等功能模塊,涵蓋了教學管理的各個環(huán)節(jié)。學生通過瀏覽器訪問業(yè)務(wù)系統(tǒng),即訪問網(wǎng)上選課系統(tǒng)完成選課、課程查詢、成績查詢等操作。

1現(xiàn)狀與原因分析

北京化工大學教務(wù)管理系統(tǒng)架構(gòu)為兩臺實體宿主機虛擬化為一臺Linux操作系統(tǒng)邏輯機做負載均衡,并使用ApacheTomcat作為服務(wù)端。ApacheTomcat是一個開源的JavaServlet容器,它能很好地處理JSP動態(tài)頁面,同時也自帶有Connecter處理HTTP請求,但其處理靜態(tài)資源時的性能與Apache等網(wǎng)頁服務(wù)器相比較差,在高并發(fā)時尤其明顯[2]。同時,當用戶選課時,無論是靜態(tài)的頁面資源的加載,還是數(shù)據(jù)庫的操作,都會非常消耗磁盤I/O的性能。結(jié)合當前機械硬盤和固態(tài)硬盤的4K性能差距,若教務(wù)管理系統(tǒng)服務(wù)器不是使用固態(tài)存儲設(shè)備的話,磁盤極容易成為性能瓶頸[3]。因此,在選課期間的前1小時內(nèi),學生訪問教務(wù)管理系統(tǒng)經(jīng)常會出現(xiàn)如主頁加載過長,甚至長達近1分鐘、出現(xiàn)無原因提示登錄超時導致被下線、管理端提示服務(wù)器CPU滿載等問題。

2解決方案

保證教務(wù)管理系統(tǒng)的平穩(wěn)運行,保障日常教學工作有序開展,采取在教務(wù)管理系統(tǒng)和客戶端中間部署反向代理服務(wù)器的穩(wěn)妥方案。主要優(yōu)點如下:1)提高業(yè)務(wù)系統(tǒng)服務(wù)器安全。外網(wǎng)用戶通過反向代理訪向教務(wù)系統(tǒng)服務(wù)器,只能獲取反向代理服務(wù)器的IP地址和端口號,無法獲取業(yè)務(wù)系統(tǒng)服務(wù)器IP地址和端口號,且反向代理服務(wù)器上未保存任何信息資源,所有網(wǎng)頁程序都保存在教務(wù)管理系統(tǒng)服務(wù)器上,對反向代理服務(wù)器的攻擊并不能教育管理系統(tǒng)受到破壞。2)分擔網(wǎng)絡(luò)壓力。在業(yè)務(wù)系統(tǒng)服務(wù)器前放置Nginx和Caddy反向代理服務(wù)器,在DNS服務(wù)器上映射教育網(wǎng)和公網(wǎng)IPv4、IPv6地址記錄,分擔訪問壓力,開放網(wǎng)絡(luò)防火墻中反向代理服務(wù)器而非業(yè)務(wù)系統(tǒng)服務(wù)器的80、443等端口,同時反向代理服務(wù)器的緩存功能也加快了用戶的訪問速度。3)加快了對業(yè)務(wù)系統(tǒng)服務(wù)器的訪問速度,實現(xiàn)對HTTP請求頁面內(nèi)容進行壓縮、緩存,以及可向用戶提供獨立于業(yè)務(wù)系統(tǒng)服務(wù)器的的安全超文本傳輸協(xié)議HTTPS和安全傳輸層協(xié)議TLS,有效保證了服務(wù)器與用戶之間的數(shù)據(jù)傳輸?shù)谋C苄院屯暾浴?/p>

綜上所述,采取分別使用Nginx和Caddy作為服務(wù)端,在教務(wù)管理系統(tǒng)前端部署兩套反向代理服務(wù)器的方案,如圖1所示。

通過DNS做負載均衡分擔網(wǎng)絡(luò)請求,從而提高服務(wù)器處理大量并發(fā)服務(wù)能力。

Nginx(“EngineX”)是俄羅斯IgorSysoev(伊戈爾·塞索耶夫)編寫的一款高性能的網(wǎng)頁和反向代理服務(wù)器。在高并發(fā)的情況下,Nginx是Apache服務(wù)器不錯的替代品,它支持高達500000個并發(fā)連接數(shù)的響應(yīng),而內(nèi)存、CPU等系統(tǒng)資源消耗卻非常低,運行非常穩(wěn)定。Nginx已在俄羅斯最大的門戶網(wǎng)站RamblerMedia上運行多年,且俄羅斯超過20%的虛擬主機平臺采用Nginx作為反向代理服務(wù)器。在國內(nèi),已經(jīng)有新浪、豆瓣網(wǎng)和迅雷等多家網(wǎng)站使用Nginx作為網(wǎng)頁服務(wù)器或反向代理服務(wù)器[5],Nginx、Caddy等網(wǎng)頁服務(wù)器性能及應(yīng)用這些服務(wù)器的網(wǎng)站百分比統(tǒng)計,如表1、表2所示。

Caddy是由GitHub用戶MatthewHolt開發(fā)的一個開源的、使用Golang編寫、支持HTTP/2的軟件網(wǎng)頁服務(wù)器。它使用Golang標準庫提供HTTP功能,原生擁有了Golang的多線程高并發(fā)的特性。其顯著的特性是通過集成ACME協(xié)議,從證書供應(yīng)商LetsEncrypt處獲取ECC算法數(shù)字證書并默認啟用安全的超文本傳輸協(xié)議HTTPS,是第一個無

需額外配置即可提供HTTPS特性網(wǎng)頁服務(wù)器。Caddy可以直接作為網(wǎng)頁服務(wù)器,也可以作為反向代理和負載均衡器提供服務(wù)。使用Caddy網(wǎng)頁服務(wù)器的網(wǎng)站百分比歷史趨勢、流行度及流量市場地位,如圖2、圖3所示。

Caddy網(wǎng)頁服務(wù)器通過插件的形式實現(xiàn)其多數(shù)功能,并通過一個名為Caddyfile的配置文件進行配置,支持超文本傳輸協(xié)議HTTP/2版本及傳輸層加密協(xié)議TLS1.3,采用gzip壓縮技術(shù),虛擬主機可支持基于傳輸層UDP協(xié)議的QUIC協(xié)議,該協(xié)議正處于試驗階段,互聯(lián)網(wǎng)工程任務(wù)組(IETF)已提議將其命名為HTTP/3版本[6]協(xié)議[7]。

盡管相比于Caddy,Nginx擁有更高的靜態(tài)頁面響應(yīng)性能,但在北京化工大學的選課系統(tǒng)的優(yōu)化部署中,本文更傾

向于使用易于上手,設(shè)計之初原生支持多線程,HTTP/2以及自動簽發(fā)數(shù)字證書的Caddy,故下文的具體方案均基于Caddy來配置。

3性能優(yōu)化

3.1主要策略

1)緩存靜態(tài)資源到內(nèi)存中,當用戶訪問頁面時,可直接從內(nèi)存讀取文件大小不大于1MB的“小”文件,無需從硬盤讀取,因內(nèi)存具有極高的4K吞吐性能,故可解決磁盤瓶頸。

2)開啟文件壓縮程序“gzip”,節(jié)省網(wǎng)絡(luò)帶寬,緩解網(wǎng)絡(luò)瓶頸。

3)采用HTTP/2協(xié)議,將原來HTTP/1.1用的6條TCP連接用1條TCP連接進行連接復用,減少TCP連接建立握手時的開銷,避免出現(xiàn)隊頭阻塞[8]。

4)提供傳輸層加密協(xié)議TLS1.3的EarlyData,實現(xiàn)0RTT的支持[9]。

5)采用“TCPBBR”擁擠調(diào)度算法,代替Linux默認的“Cubic”算法,以增加高負載,高丟包時的TCP網(wǎng)絡(luò)利用率[10]。

3.2具體實現(xiàn)

1)將DNS服務(wù)器中教務(wù)管理系統(tǒng)的解析記錄映射到Caddy服務(wù)器的IPv4和IPv6地址上,即將Caddy服務(wù)器為教務(wù)管理系統(tǒng)的反向代理服務(wù)器,修改Caddy配置,利用“ip_hash”調(diào)度規(guī)則對多臺教務(wù)系統(tǒng)Tomcat網(wǎng)頁服務(wù)器配置負載均衡。

2)對來自http:80端口的訪問請求進行HTTP303重定向到https:443端口,用以防止中間人攻擊以及啟用http/2協(xié)議。此處返回303狀態(tài)碼而不是301狀態(tài)碼,是保留對緊急情況出現(xiàn)時可平滑過渡到原有的不支持https的教務(wù)管理系統(tǒng)的兼容性[11]。

3)編譯“http.cache”插件,添加“cache”參數(shù),將Caddy作為緩存服務(wù)器,將圖片,CSS,JS文件等靜態(tài)資源都進行了緩存,有效的減少對tomcat的訪問。

4)添加“gzip”參數(shù),對網(wǎng)絡(luò)數(shù)據(jù)進行壓縮,減少不必要的網(wǎng)絡(luò)開銷。

5)添加“l(fā)og”參數(shù),對訪問行為進行記錄,以進行后續(xù)分析。

6)添加“keepalive”參數(shù),減少重復建立TCP鏈接對上游服務(wù)器帶來的負載。

7)添加“header_upstream”參數(shù),并設(shè)置XRealIP,XForwardedFor參數(shù)為固定的反向代理服務(wù)器的IPv4地址,以保留和原不支持IPv6的教務(wù)管理系統(tǒng)的兼容性,防止POST選課請求時返回“未知錯誤”的提示。

8)添加“try_duration”參數(shù),以提供教務(wù)管理服務(wù)器負責均衡功能。

9)編譯“http.prometheus”模塊,利用Prometheus和Grafana程序提供一個可視化的統(tǒng)計面板,用來實時監(jiān)控Caddy的工作狀態(tài)。

3.3應(yīng)急方案

1)當出現(xiàn)頁面訪問異常時,可立即將DNS記錄進行修改,將映射修改為原教務(wù)管理系統(tǒng)服務(wù)器IP地址。因Caddy服務(wù)器已設(shè)置303SeeOther臨時重定向,當用戶關(guān)閉瀏覽器再重新打開時,會重新訪問DNS服務(wù)器對域名進行解析,將不再訪問反向代理服務(wù)器而連接回教務(wù)管理系統(tǒng)。

2)利用supervisord守護腳本監(jiān)視Caddy進程的運行情況,保證其在意外退出后能自動重啟,實現(xiàn)出錯后快速恢復的目標。

3.4模擬測試結(jié)果

本文使用壓力測試工具hey對教務(wù)管理系統(tǒng)進行測試。參數(shù)為c1000z5mdisablekeepaliveh2(即啟用http/2協(xié)議并禁止httpkeepalive,設(shè)置并發(fā)連接數(shù)為1000,持續(xù)測試5分鐘),測試前通過ulimitn65536命令解除shell資源限制,代理服務(wù)器響應(yīng)結(jié)果為1.09秒。當提高并發(fā)數(shù)至2000時,響應(yīng)時間僅為1.52秒,兩次測試得到的響應(yīng)時間結(jié)果都遠小于直接壓力測試教務(wù)管理系統(tǒng)服務(wù)器的響應(yīng)時間,效果較好,對比結(jié)果如表3所示。

因設(shè)置了緩存機制,返回的分組包頭里會加入xcachestatus字段并記錄在日志里用于分析,此字段有miss、hit、bypass及skip共4種狀態(tài)。2019年12月26日至2020年1月10日正選課期間,進行小范圍實戰(zhàn)測試,通過分析日志文件access.log,如表4、圖4、圖5所示。

用戶請求的緩存命中率高達41%。若除去由POST請求產(chǎn)生的Cachebypass和因uid變化造成的miss,緩存的命中率會更高。有效加快了用戶的訪問速度。

4總結(jié)

抗擊新型冠狀病毒肺炎疫情以來,北京化工大學為保障“停課不停教、不停學”,針對“本科教務(wù)管理系統(tǒng)”、“在線綜合教育平臺”和“Moodle教學平臺”部署Caddy反向代理服務(wù)。2月17日為開學第一日,全校師生通過反向代理服務(wù)器訪問我校教學、教務(wù)等系統(tǒng)的網(wǎng)站瀏覽量(PV)為:電腦端6,392,467次,同比前一日上升89%,“優(yōu)慕課”APP為2,689,619次,同比前一日上升114%。15時20分,TCP連接數(shù)為9330,到達當日峰值,同比前一日上升337%,如圖5所示。通過反向代理服務(wù),有效地分流VPN服務(wù)器訪問壓力,保障了教學、科研、管理工作有序開展。

參考文獻

[1]許雯.基于Web的選課系統(tǒng)的設(shè)計與性能優(yōu)化[J].科技與創(chuàng)新,2017(16):127.

[2]JUSTUniversity.(靜態(tài)資源處理)nginx比tomcat強在哪?[EB/OL].(2019June26).https://juejin.im/post/5d1301c4f265da1b7b319a82.

[3]從機械硬盤到SSD:高性能I/O之路[EB/OL].搜狐網(wǎng)(2016August5).http://www.sohu.com/a/109200399116463

[4]Comparisonofwebserversoftware[EB/OL].Wikipedia,(2020July27).https://en.wikipedia.org/wiki/Comparisonofwebserversoftware.

[5]張宴.實戰(zhàn)nginx:取代Apache的高性能Web服務(wù)器[M].北京:電子工業(yè)出版社,2010.

[6]HypertextTransferProtocolVersion3(HTTP/3)[EB/OL].(2020September11).https://quicwg.org/basedrafts/draftietfquichttp.html.

[7]Caddy[EB/OL].維基百科,(2020January15).https://en.wikipedia.org/wiki/Caddy(webserver).

[8]IETFRFC7540[EB/OL].(2015May).https://tools.ietf.org/html/rfc7540.

[9]IETFRFC8446[EB/OL].(2018August).https://tools.ietf.org/html/rfc8446#section4.2.10.

[10]NealCardwell,YuchungCheng,C.StephenGunn,etal.BBR:CongestionBasedCongestionControl[J/OL].https://queue.acm.org/detail.cfm?id=3022184.

[11]HTTP303FromWikipedia,thefreeencyclopedia[EB/OL].(2020January28).https://en.wikipedia.org/wiki/HTTP303.

(收稿日期:2020.03.25)

猜你喜歡
用戶系統(tǒng)
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無人機系統(tǒng)
ZC系列無人機遙感系統(tǒng)
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統(tǒng)
半沸制皂系統(tǒng)(下)
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
關(guān)注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關(guān)注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關(guān)注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
Camera360:拍出5億用戶
主站蜘蛛池模板: 国产理论一区| 国产成人综合亚洲欧美在| 国产精品19p| 国产精品亚洲一区二区三区z | 在线欧美a| 欧美啪啪视频免码| 国产黄在线免费观看| 国产一区二区三区视频| 成人无码一区二区三区视频在线观看 | 思思99思思久久最新精品| 毛片大全免费观看| 91午夜福利在线观看精品| 国产精品成人啪精品视频| 综合天天色| 亚洲欧洲AV一区二区三区| 日本一区二区不卡视频| 国产在线自在拍91精品黑人| 毛片卡一卡二| 欧美一级高清片欧美国产欧美| 中文字幕无码电影| 国产H片无码不卡在线视频| 国产成熟女人性满足视频| h视频在线观看网站| 农村乱人伦一区二区| 久青草免费视频| 色综合久久久久8天国| 97人妻精品专区久久久久| 欧美日本激情| 丝袜亚洲综合| 国产三级毛片| 亚洲成人一区二区三区| 久久激情影院| 99久久无色码中文字幕| 精品一区二区三区自慰喷水| 久久亚洲美女精品国产精品| 亚洲欧美不卡视频| 九九香蕉视频| 成人免费网站久久久| 国产白浆在线观看| 亚洲国产系列| 麻豆精品在线视频| 国产打屁股免费区网站| 亚洲欧美激情另类| 国产成人免费观看在线视频| 啪啪啪亚洲无码| 日韩美一区二区| 亚洲日韩精品欧美中文字幕| 亚洲国产理论片在线播放| 91年精品国产福利线观看久久| 成年人福利视频| 日本三级欧美三级| 国产人人乐人人爱| 久久精品嫩草研究院| 国产精品密蕾丝视频| 国产黄网站在线观看| 亚洲欧美在线综合图区| 男女精品视频| 成人日韩精品| 久久精品无码国产一区二区三区| 国产导航在线| 99re66精品视频在线观看| 国产精品免费露脸视频| 欧美亚洲国产视频| 不卡的在线视频免费观看| 亚洲AV无码乱码在线观看代蜜桃| 亚洲国产天堂久久九九九| 午夜在线不卡| 国产麻豆91网在线看| 青青青国产免费线在| 免费看av在线网站网址| 久久综合激情网| 免费一级毛片| 亚洲欧洲日韩综合色天使| 91精品人妻一区二区| 色婷婷狠狠干| 日韩高清一区 | 亚洲一区二区约美女探花| 国产精品尹人在线观看| 91色爱欧美精品www| 国产h视频免费观看| 大学生久久香蕉国产线观看 | 97国产在线播放|