【世博IT魔方】Nginx+Keepalived實(shí)現(xiàn)在線票務(wù)系統(tǒng)
系統(tǒng)網(wǎng)絡(luò)層級(jí)別的安全防護(hù):
安全防護(hù)采用三層硬件防火墻+七層應(yīng)用層防護(hù)來(lái)實(shí)現(xiàn),系統(tǒng)均安裝64位的Centos5.4;軟件層分負(fù)載均衡層、web層、數(shù)據(jù)庫(kù)層來(lái)說(shuō)明,整套系統(tǒng)均關(guān)閉iptables防火墻,只映射Keepalived虛擬的VIP在最前端的華塞USG5000的外網(wǎng)80端口上,先將整套系統(tǒng)的安全級(jí)別提高到金融級(jí)別,再考慮負(fù)載均衡及其它事宜。
華賽USGUSG5000可以有效抵御高強(qiáng)度的網(wǎng)絡(luò)攻擊,而且同時(shí)可以保證正常的網(wǎng)絡(luò)應(yīng)用。其基于多核處理器的硬件構(gòu)架,依靠多線程處理設(shè)計(jì)提供了十分優(yōu)異的數(shù)據(jù)處理能力,完全可以為Internet服務(wù)提供商、大型企業(yè)、園區(qū)網(wǎng)、數(shù)據(jù)中心等具備大流量網(wǎng)絡(luò)帶寬用戶提供高性能的安全防御手段;尤其是USG5000所具備的超高的“每秒新建連接數(shù)”,不僅可以實(shí)現(xiàn)對(duì)多種并行的網(wǎng)絡(luò)應(yīng)用實(shí)現(xiàn)快速響應(yīng),而且在大流量網(wǎng)絡(luò)攻擊的情況下,仍然可以防止網(wǎng)絡(luò)業(yè)務(wù)中斷給用戶帶來(lái)的損失。
它能有效地保障網(wǎng)絡(luò)的運(yùn)行,并且其獨(dú)特的GTP安全防護(hù)功能可以為GPRS網(wǎng)絡(luò)提供有效的安全防護(hù);USG5000安全網(wǎng)關(guān)可以抵御大流量的DDoS攻擊,為用戶的業(yè)務(wù)系統(tǒng)提供DDoS攻擊防護(hù),依托優(yōu)越的產(chǎn)品性能,能防范每秒數(shù)百萬(wàn)包以上的DDoS攻擊,可支持對(duì)SYN FLOOD、UDP FLOOD、ICMP FLOOD、DNS FLOOD、CC等多種DDoS攻擊種類的準(zhǔn)確識(shí)別和控制,同時(shí)還能提供蠕蟲病毒流量的識(shí)別和防范能力,結(jié)合華為賽門鐵克專有ICA智能連接算法,保證在準(zhǔn)確識(shí)別DDoS攻擊流量的同時(shí),不影響用戶的正常訪問,在復(fù)雜網(wǎng)絡(luò)情況下實(shí)現(xiàn)真正的安全防護(hù),是業(yè)界領(lǐng)先的DDoS防護(hù)設(shè)備,這功能也是我們關(guān)注的重點(diǎn)
天泰WAF-T3-500-L安全網(wǎng)關(guān)防火墻具備全面的攻擊防御系統(tǒng),可保證系統(tǒng)不受網(wǎng)絡(luò)蠕蟲/病毒和應(yīng)用專用漏洞的攻擊,并且大大緩解來(lái)自網(wǎng)絡(luò)層和應(yīng)用層DoS/DDoS攻擊的影響。網(wǎng)關(guān)的NetShield™引擎在網(wǎng)絡(luò)層對(duì)數(shù)據(jù)進(jìn)行細(xì)致檢查,徹底阻斷來(lái)自網(wǎng)絡(luò)層的潛在攻擊。網(wǎng)關(guān)的WebShield™引擎在應(yīng)用層對(duì)Web請(qǐng)求進(jìn)行檢查,辨別惡意內(nèi)容并阻止其進(jìn)入應(yīng)用服務(wù)器。
其安全性能包括:
常見網(wǎng)絡(luò)攻擊防護(hù)——保護(hù)網(wǎng)絡(luò)基礎(chǔ)設(shè)施不受常見的來(lái)自網(wǎng)絡(luò)層的攻擊
DoS/DDoS 保護(hù)——識(shí)別網(wǎng)絡(luò)層和應(yīng)用層的DoS/DDoS攻擊,緩解攻擊對(duì)應(yīng)用基礎(chǔ)設(shè)施的影響(這也是我們關(guān)注的重點(diǎn))
入侵過濾——通過在惡意蠕蟲和病毒進(jìn)入應(yīng)用服務(wù)器前進(jìn)行識(shí)別并拒絕,保護(hù)應(yīng)用服務(wù)器不受侵襲。
SSL加密——應(yīng)用內(nèi)容在傳輸過程中都受加密保護(hù),通過轉(zhuǎn)移服務(wù)器復(fù)雜的加/解密任務(wù)將應(yīng)用處理能力發(fā)揮到了極致。該功能保護(hù)敏感應(yīng)用內(nèi)容的安全,使其擺脫被竊取及被濫用的潛在威脅。
此外,能實(shí)現(xiàn)SQL注入攻擊防護(hù),釣魚攻擊,跨站腳本攻擊防護(hù)及常見系統(tǒng)溢出防護(hù)等,這個(gè)也是我們比較關(guān)注的
服務(wù)器我們一般采用的是HP DL380G6(用于web)和HP DL580G5(用于數(shù)據(jù)庫(kù));在項(xiàng)目實(shí)施中發(fā)現(xiàn)HP DL580G5的性能確實(shí)彪悍,如果成本充分,可考慮都上此服務(wù)器;然后根據(jù)用途不同,內(nèi)存的數(shù)量側(cè)重點(diǎn)也不同;跟以往的老型號(hào)不同,用的雙四核至強(qiáng)E74403.2GB的CPU,內(nèi)存一般上的64GB或146GB。
租用機(jī)房:我們一般選擇的是電信機(jī)房,也可考慮北京的雙線通機(jī)房;出口帶寬建議100MB,這些沒什么好說(shuō)的。
負(fù)載均衡層:
負(fù)載均衡層用的軟件我們采用的是Nginx源碼,二臺(tái)Nginx用Keepalived作高HA;其實(shí)也可以用LVS/Keepavlied來(lái)實(shí)現(xiàn);但我們?cè)陧?xiàng)目實(shí)施發(fā)現(xiàn),Nginx在正則處理及l(fā)ocation分發(fā)上效果比LVS更好(有些功能LVS實(shí)現(xiàn)不了),而且穩(wěn)定性并不亞于LVS;在我從事的某些金融項(xiàng)目里,按客戶的要求,1+2架構(gòu)就很穩(wěn)定的運(yùn)行,當(dāng)然也要配合Nagios實(shí)現(xiàn)監(jiān)控。
如何處理session的問題:
① Nginx負(fù)載均衡器采用ip_hash模塊,讓訪問的客戶端始終與后端某臺(tái)web建議永久性連接關(guān)系;
② 采用與PHPCMS類似的方法,將session寫進(jìn)后端的統(tǒng)一數(shù)據(jù)庫(kù)里,例如MySQL;
WEB層:
頁(yè)面同步
辦法①可以采用rsync自動(dòng)同步的辦法。
辦法②后端采用共用存儲(chǔ),讀數(shù)據(jù)采用同一個(gè)存儲(chǔ)設(shè)備。
這里說(shuō)下要用的存儲(chǔ)設(shè)備,我們用的比較多的是EMC CLARiiON CX4的FC磁盤陣列,很穩(wěn)定,沒發(fā)生過丟失數(shù)據(jù)庫(kù)的問題;缺點(diǎn)是比較貴,會(huì)增加整個(gè)系統(tǒng)實(shí)施成本。
辦法③在程序上實(shí)現(xiàn)動(dòng)態(tài)的調(diào)取數(shù)據(jù)(如圖片及文字)采用后端的唯一文件服務(wù)器,后期可考慮采用moosefs分布式文件系統(tǒng)來(lái)減小壓力.
Web集群方面用的是Nginx+PHP5(FastCGI),這里說(shuō)下并發(fā)的問題;在設(shè)計(jì)項(xiàng)目方案時(shí),我們考慮的單臺(tái)web上的并發(fā)值為9000,在局域網(wǎng)環(huán)境中通過LoadRunner及Webbench反復(fù)測(cè)試,單臺(tái)Nginx的web通過9000并發(fā)沒有問題,3臺(tái)web即是9000*3=27000并發(fā);但系統(tǒng)正式上線時(shí)發(fā)現(xiàn),由于非游戲類網(wǎng)站,根本達(dá)不到27000并發(fā),這只是一個(gè)理論值;但本著高擴(kuò)展性的原則,還是盡量在硬件和性能上對(duì)單臺(tái)web進(jìn)行調(diào)優(yōu);本系統(tǒng)是9000萬(wàn)張票,預(yù)計(jì)并發(fā)在2000左右,此系統(tǒng)架構(gòu)完全能勝任并發(fā)情況;另Nginx負(fù)載均衡器在高并發(fā)下的穩(wěn)定性是無(wú)用置疑的,有此項(xiàng)目經(jīng)驗(yàn)的人都應(yīng)該清楚。
數(shù)據(jù)庫(kù)層:
考慮到數(shù)據(jù)庫(kù)層的壓力情況,我提出三種主案:
① 采用最常用MySQL一主一從方案,在主上做好單機(jī)的優(yōu)化,MySQL在壓力和性能上的表現(xiàn)超過預(yù)期;
② 如果壓力還是過大,考慮采用oracle的雙機(jī)RAC方案,我們用此成功解決了某用戶100W用戶的OA系統(tǒng)數(shù)據(jù)庫(kù)壓力大的問題;
③ 可用用MySQL的一主多從方案,在web層上實(shí)行分布式memcache緩存,另還可考慮自己開發(fā)中間件技術(shù),讓真正的實(shí)現(xiàn)寫功能的MySQL壓力做小,從而達(dá)到數(shù)據(jù)庫(kù)架構(gòu)級(jí)調(diào)優(yōu)的功能(這個(gè)也是游戲行業(yè)數(shù)據(jù)庫(kù)采用減壓的辦法)。
【編輯推薦】
- 美國(guó)康普智能系統(tǒng)助力蕪湖第二人民醫(yī)院
- 析奧創(chuàng)利綜合布線在世博會(huì)中國(guó)館的應(yīng)用
- Avocent助克拉瑪依油田實(shí)現(xiàn)服務(wù)器微觀環(huán)境實(shí)時(shí)監(jiān)控
- 【世博IT魔方】H3C助力世博會(huì)園區(qū)監(jiān)控系統(tǒng)
- Strix無(wú)線Mesh技術(shù)在鐵路系統(tǒng)的應(yīng)用
#p#
專家點(diǎn)評(píng):張 琦——榮新IT培訓(xùn)中心資深講師(評(píng)分:200分)
此文立意明確,從在線票務(wù)系統(tǒng)的安全防護(hù)角度,分析了世博在線售票系統(tǒng)中存在的安全隱患和問題。并從數(shù)據(jù)庫(kù)、負(fù)載均衡、Web集群等充分論證了在線票務(wù)系統(tǒng)服務(wù)器存在的安全威脅,也分別從這幾個(gè)方面給出了具體解決辦法。
遺憾的是,該文未涉及主要服務(wù)器的處理能力,這對(duì)于在線售票系統(tǒng)來(lái)說(shuō)非常重要。
#p#
專家點(diǎn)評(píng):楊 栩——博科公司(Brocade)高級(jí)技術(shù)顧問(評(píng)分:200分)
本文從安全性和服務(wù)器負(fù)載均衡兩個(gè)方面詳細(xì)闡述了票務(wù)系統(tǒng)的組網(wǎng)方案和技術(shù),是一個(gè)可實(shí)施的成功案例,值得讀者學(xué)習(xí)和借鑒。
個(gè)人覺得兩套不同廠家的防火墻串接在網(wǎng)絡(luò)里,無(wú)疑提高了安全性,但也給網(wǎng)絡(luò)帶來(lái)了復(fù)雜性、增加了故障點(diǎn)。另外如果對(duì) 每秒新建連接數(shù)和并發(fā)連接數(shù)要求高的話,建議采用專業(yè)的負(fù)載均衡硬件設(shè)備如F5、Brocade等。
#p#
專家點(diǎn)評(píng):宋家雨——《政府采購(gòu)信息報(bào)》IT周刊主編(評(píng)分:300分)
沒有嚴(yán)密專業(yè)的安全措施作為保障,在線的票務(wù)系統(tǒng)你敢采用嗎?因此,在一個(gè)簡(jiǎn)單業(yè)務(wù)應(yīng)用的背后,有一個(gè)龐大的系統(tǒng)作為保障和支撐,千萬(wàn)不要忽視。