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

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

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

黃聰穎 滕建

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

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

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

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

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

2解決方案

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

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

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

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

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

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

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

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

向于使用易于上手,設計之初原生支持多線程,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)絡帶寬,緩解網(wǎng)絡瓶頸。

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”擁擠調度算法,代替Linux默認的“Cubic”算法,以增加高負載,高丟包時的TCP網(wǎng)絡利用率[10]。

3.2具體實現(xiàn)

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

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

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

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

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

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

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

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

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

3.3應急方案

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

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

3.4模擬測試結果

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

因設置了緩存機制,返回的分組包頭里會加入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總結

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

參考文獻

[1]許雯.基于Web的選課系統(tǒng)的設計與性能優(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服務器[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
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
Camera360:拍出5億用戶
主站蜘蛛池模板: 日韩欧美一区在线观看| 亚洲第一天堂无码专区| 亚洲第一色视频| 一区二区三区四区日韩| 波多野吉衣一区二区三区av| 动漫精品中文字幕无码| 亚洲午夜综合网| 欧美午夜精品| 国产成人亚洲精品无码电影| 久久久久久尹人网香蕉| 国产在线观看一区精品| 国产精品福利导航| 亚洲国产日韩在线观看| 欧美午夜视频在线| 沈阳少妇高潮在线| 欧美亚洲国产视频| 亚洲第一成年人网站| 精品伊人久久久久7777人| 狠狠色婷婷丁香综合久久韩国 | 日本道综合一本久久久88| 日韩人妻无码制服丝袜视频| 亚洲视频一区在线| 中文字幕永久在线看| 久久婷婷六月| 久夜色精品国产噜噜| 九九这里只有精品视频| 日韩中文无码av超清| 蜜桃视频一区二区| 强奷白丝美女在线观看| 亚洲国产成人综合精品2020 | 国产男女免费视频| 国产一区二区免费播放| 伊人久久大香线蕉影院| 四虎永久在线精品影院| 欧美日韩国产一级| 国产欧美精品一区二区| 精品亚洲麻豆1区2区3区| 国产精品高清国产三级囯产AV| 中文字幕在线播放不卡| av午夜福利一片免费看| 国产精品久久久久久久伊一| 欧美激情,国产精品| 国产自在线拍| 老汉色老汉首页a亚洲| 日韩视频福利| 日韩一区精品视频一区二区| 亚洲成人福利网站| 72种姿势欧美久久久久大黄蕉| 日韩精品一区二区深田咏美| 亚洲色图狠狠干| 亚洲色图综合在线| 在线不卡免费视频| 婷婷午夜天| 国产特级毛片| 亚洲日韩每日更新| 爱做久久久久久| 久久性视频| 国产精品va免费视频| 亚洲精品无码抽插日韩| 国产成人做受免费视频| 久久久久久尹人网香蕉| 亚洲男人的天堂在线观看| 日本免费一区视频| 欧美成人日韩| 一级片一区| 久久精品人妻中文系列| 久久国产精品影院| 国产男女免费视频| 国产精品粉嫩| 国产偷国产偷在线高清| 亚洲福利片无码最新在线播放| 国产美女人喷水在线观看| 国产三级国产精品国产普男人| 国产午夜一级淫片| 激情亚洲天堂| 亚洲第一黄色网址| 国产成人综合日韩精品无码首页 | 亚洲第一区在线| 久久网欧美| 91亚洲精品国产自在现线| 国产无码精品在线播放 | 刘亦菲一区二区在线观看|