• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

      2020-11-13 03:38:57黃聰穎滕建
      微型電腦應(yīng)用 2020年10期
      關(guān)鍵詞:代理服務(wù)器教務(wù)網(wǎng)頁

      黃聰穎 滕建

      摘要:多數(shù)高校已建立以“客戶服務(wù)器”為通信模型的多個(gè)信息化系統(tǒng),但教務(wù)管理等業(yè)務(wù)系統(tǒng)仍存在短時(shí)間突發(fā)訪問集中、訪問量大導(dǎo)致服務(wù)器響應(yīng)緩慢甚至宕機(jī)情況發(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ù),實(shí)現(xiàn)了在保障業(yè)務(wù)系統(tǒng)服務(wù)器安全的前提下“停課不停教、不停學(xué)”。

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

      中圖分類號(hào):TP311

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

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

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

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

      2解決方案

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

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

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

      Nginx(“EngineX”)是俄羅斯IgorSysoev(伊戈?duì)枴と饕颍┚帉懙囊豢罡咝阅艿木W(wǎng)頁和反向代理服務(wù)器。在高并發(fā)的情況下,Nginx是Apache服務(wù)器不錯(cuò)的替代品,它支持高達(dá)500000個(gè)并發(fā)連接數(shù)的響應(yīng),而內(nèi)存、CPU等系統(tǒng)資源消耗卻非常低,運(yùn)行非常穩(wěn)定。Nginx已在俄羅斯最大的門戶網(wǎng)站RamblerMedia上運(yùn)行多年,且俄羅斯超過20%的虛擬主機(jī)平臺(tái)采用Nginx作為反向代理服務(wù)器。在國(guó)內(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)計(jì),如表1、表2所示。

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

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

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

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

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

      3性能優(yōu)化

      3.1主要策略

      1)緩存靜態(tài)資源到內(nèi)存中,當(dāng)用戶訪問頁面時(shí),可直接從內(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連接進(jìn)行連接復(fù)用,減少TCP連接建立握手時(shí)的開銷,避免出現(xiàn)隊(duì)頭阻塞[8]。

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

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

      3.2具體實(shí)現(xiàn)

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

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

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

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

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

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

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

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

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

      3.3應(yīng)急方案

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

      2)利用supervisord守護(hù)腳本監(jiān)視Caddy進(jìn)程的運(yùn)行情況,保證其在意外退出后能自動(dòng)重啟,實(shí)現(xiàn)出錯(cuò)后快速恢復(fù)的目標(biāo)。

      3.4模擬測(cè)試結(jié)果

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

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

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

      4總結(jié)

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

      參考文獻(xiàn)

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

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

      [3]從機(jī)械硬盤到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]張宴.實(shí)戰(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)

      猜你喜歡
      代理服務(wù)器教務(wù)網(wǎng)頁
      教務(wù)排課對(duì)高等院校教學(xué)運(yùn)行的作用分析
      大學(xué)(2021年2期)2021-06-11 01:13:16
      淺析高校教務(wù)管理存在的問題及對(duì)策
      傳播力研究(2019年8期)2019-03-20 10:58:14
      地鐵信號(hào)系統(tǒng)中代理服務(wù)器的設(shè)計(jì)與實(shí)現(xiàn)
      基于CSS的網(wǎng)頁導(dǎo)航欄的設(shè)計(jì)
      電子制作(2018年10期)2018-08-04 03:24:38
      IP地址隱藏器
      基于URL和網(wǎng)頁類型的網(wǎng)頁信息采集研究
      電子制作(2017年2期)2017-05-17 03:54:56
      淺談新形勢(shì)下高校教務(wù)管理人員的素質(zhì)與培養(yǎng)
      網(wǎng)頁制作在英語教學(xué)中的應(yīng)用
      以培養(yǎng)方案為核心的教務(wù)管理系統(tǒng)開發(fā)的探索與實(shí)踐
      10個(gè)必知的網(wǎng)頁設(shè)計(jì)術(shù)語
      乐都县| 安达市| 安溪县| 浦东新区| 开原市| 房山区| 台江县| 耒阳市| 姚安县| 大厂| 屏南县| 西藏| 呈贡县| 屏山县| 榕江县| 宁河县| 南昌县| 洪湖市| 宜城市| 正安县| 沅陵县| 牟定县| 麦盖提县| 柳州市| 扎兰屯市| 平原县| 南城县| 保定市| 平顺县| 石家庄市| 上杭县| 津市市| 米泉市| 通辽市| 杂多县| 麟游县| 观塘区| 桂东县| 化州市| 南召县| 奉化市|