【文章內(nèi)容簡介】
享訪問,通過 Rsync來實(shí)現(xiàn)遠(yuǎn)程文件同步。7) 在應(yīng)用開發(fā)中采用基于Struts的MVC架構(gòu),同時(shí)采用緩存技術(shù)來提高動(dòng)態(tài)頁面的訪問。8) 使頁面盡可能靜態(tài)化,引入CMS系統(tǒng)使網(wǎng)站進(jìn)一步靜態(tài)化。9) 對(duì)數(shù)據(jù)庫采用生產(chǎn)數(shù)據(jù)庫和查詢數(shù)據(jù)庫分離,同時(shí)采用oracle 的Rac技術(shù)來實(shí)現(xiàn)集群擴(kuò)展。10) 通過鏡像技術(shù)來實(shí)現(xiàn)不同網(wǎng)絡(luò)服務(wù)商的接入速度問題。前臺(tái)門戶網(wǎng)站架構(gòu) 網(wǎng)站的軟件架構(gòu)T o m a tA p a c h eW E B 服 務(wù) 器數(shù) 據(jù) 存 儲(chǔ)文 件 存 儲(chǔ)T o m a tH D F S. . .W E B容 器基 于 s t r u t s 的 M V C 框 架M o d e lV i e w持 久 層頁 面 緩 存 ( M e m c a c h e d )通 訊 層S M SM M SW A P P U S H短 信 群發(fā) 器彩 信 群發(fā) 器數(shù) 據(jù) 庫消息中心消 息中 心O R Mi b a t i sD B 連 接 池C 3 p 0H T M L 靜態(tài) 化 模 塊后 臺(tái) 支撐 模 塊業(yè) 務(wù) 支 撐模 塊請(qǐng) 求數(shù) 據(jù)生 產(chǎn) 數(shù) 據(jù) 庫( R A C )生 產(chǎn) 數(shù) 據(jù) 庫( R A C )統(tǒng) 計(jì) 支 撐模 塊I / OC o n t r o l業(yè) 務(wù) 層 數(shù) 據(jù) 層J D B C查 詢 數(shù) 據(jù) 庫前臺(tái)門戶網(wǎng)站架構(gòu) 網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)I n t e r n e t主 防 火 墻主 交 換 機(jī)V R R P備 防 火 墻服 務(wù) 器 2服 務(wù) 器 1服 務(wù) 器 2服 務(wù) 器 n服 務(wù) 器 2服 務(wù) 器 2服 務(wù) 器 1 服 務(wù) 器 1代 理 服 務(wù) 器 集 群( N g i n x )網(wǎng) 站 服 務(wù) 器 集 群生 產(chǎn) D B 服 務(wù) 器 集 群 查 詢 D B 服 務(wù) 器 組光 纖 交 換 機(jī)光 纖 交 換 機(jī)磁 盤 陣 列 柜 磁 盤 陣 列 柜備 交 換 機(jī)負(fù) 載 均 衡 器 1負(fù) 載 均 衡 器 2. . .服 務(wù) 器 n服 務(wù) 器 2服 務(wù) 器 n服 務(wù) 器 1應(yīng) 用 服 務(wù) 器 集 群管 理 終 端服 務(wù) 器 1 服 務(wù) 器 n. . .服 務(wù) 器 2服 務(wù) 器 1 服 務(wù) 器 n圖 片 服 務(wù) 器 集 群備注:1) 采用雙防火墻雙交換機(jī)做網(wǎng)絡(luò)冗余,保障平臺(tái)服務(wù)采用雙防火墻通知接通2線路互聯(lián)網(wǎng)接入,設(shè)備之間采用VRRP協(xié)議,在任何一個(gè)防火墻、互聯(lián)網(wǎng)發(fā)生故障后均可自動(dòng)將流量切換到另一端,保證網(wǎng)站的正運(yùn)行,設(shè)備或網(wǎng)絡(luò)恢復(fù)后,自動(dòng)恢復(fù)。采用雙千兆交換機(jī)分別接在2臺(tái)防火墻上,當(dāng)某臺(tái)設(shè)備或者網(wǎng)絡(luò)鏈路發(fā)生故障后,好設(shè)備自動(dòng)接管已壞設(shè)備的工作,不影響網(wǎng)站的整體運(yùn)行,根據(jù)業(yè)務(wù)及真實(shí)服務(wù)器的數(shù)量,交換機(jī)可以隨時(shí)增加。2) 采用硬件設(shè)備負(fù)載均衡器,實(shí)現(xiàn)網(wǎng)絡(luò)流量的負(fù)載均衡使用硬件設(shè)備負(fù)載均衡器,將網(wǎng)絡(luò)流量均衡的分擔(dān)到WEB服務(wù)器集群各節(jié)點(diǎn)服務(wù)器,保障平臺(tái)服務(wù)器資源均衡的使用。3) 采用代理服務(wù)器,實(shí)現(xiàn)軟件級(jí)的網(wǎng)絡(luò)負(fù)載均衡。4) 數(shù)據(jù)庫服務(wù)器分離成生產(chǎn)數(shù)據(jù)庫集群和查詢數(shù)據(jù)庫集群,實(shí)現(xiàn)生產(chǎn)讀寫與后臺(tái)查詢統(tǒng)計(jì)進(jìn)行分離,同時(shí)生產(chǎn)數(shù)據(jù)庫采用rac技術(shù)進(jìn)行前臺(tái)門戶網(wǎng)站架構(gòu) 負(fù)載均衡 通過硬件實(shí)現(xiàn)負(fù)載均衡在硬件四層交換產(chǎn)品領(lǐng)域,有一些知名的產(chǎn)品可以選擇,比如Alteon、F5等,這些產(chǎn)品很昂貴,但是物有所值,能夠提供非常優(yōu)秀的性能和很靈活的管理能力。Yahoo中國當(dāng)初接近2022臺(tái)服務(wù)器使用了三四臺(tái)Alteon就搞定了 通過軟件四層交換實(shí)現(xiàn)負(fù)載均衡軟件四層交換我們可以使用Linux上常用的LVS來解決,LVS就是Linux Virtual Server,他提供了基于心跳線heartbeat的實(shí)時(shí)災(zāi)難應(yīng)對(duì)解決方案,提高系統(tǒng)的魯棒性,同時(shí)可供了靈活的虛擬VIP配置和管理功能,可以同時(shí)滿足多種應(yīng)用需求,這對(duì)于分布式的系統(tǒng)來說必不可少。一個(gè)典型的使用負(fù)載均衡的策略就是,在軟件或者硬件四層交換的基礎(chǔ)上搭建squid集群,這種思路在很多大型網(wǎng)站包括搜索引擎上被采用,這樣的架構(gòu)低成本、高性能還有很強(qiáng)的擴(kuò)張性。 通過反向代理服務(wù)器實(shí)現(xiàn)負(fù)載均衡反向代理服務(wù)器又稱為 WEB 加速服務(wù)器,它位于 WEB 服務(wù)器的前端,充當(dāng)WEB服務(wù)器的內(nèi)容緩存器,反向代理服務(wù)器是針對(duì) WEB 服務(wù)器設(shè)置的,后臺(tái) WEB 服務(wù)器對(duì)互聯(lián)網(wǎng)用戶是透明的,用戶只能看到反向代理服務(wù)器的地址,不清楚后臺(tái) WEB 服務(wù)器是如何組織架構(gòu)的。當(dāng)互聯(lián)網(wǎng)用戶請(qǐng)求 WEB 服務(wù)時(shí), DNS 將請(qǐng)求的域名解析為反向代理服務(wù)器的 IP 地址,這樣 URL 請(qǐng)求將被發(fā)送到反向代理服務(wù)器,由反向代理服務(wù)器負(fù)責(zé)處理用戶的請(qǐng)求與應(yīng)答、與后臺(tái) WEB 服務(wù)器交互。利用反向代理服務(wù)器減輕了后臺(tái) WEB 服務(wù)器的負(fù)載,提高了訪問速度,同時(shí)避免了因用戶直接與 WEB 服務(wù)器通信帶來的安全隱患。目前有許多反向代理軟件,比較有名的有 Nginx 和 Squid 。Nginx 是由 Igor Sysoev 為俄羅斯訪問量第二的 站點(diǎn)開發(fā)的,是一個(gè)高性能的 前臺(tái)門戶網(wǎng)站架構(gòu)HTTP 和反向代理服務(wù)器,也是一個(gè) IMAP/POP3/SMTP 代理服務(wù)器。Squid是由美國政府大力資助的一項(xiàng)研究計(jì)劃,其目的為解決網(wǎng)絡(luò)帶寬不足的問題,支持HTTP,HTTPS,F(xiàn)TP 等多種協(xié)議,是現(xiàn)在 Unix 系統(tǒng)上使用、最多功能也最完整的一套軟體。1. Squid Squid 是一個(gè)開源的軟件,利用它的反向代理技術(shù)可以提高網(wǎng)站系統(tǒng)的訪問速度,下面將重點(diǎn)介紹 Squid 反向代理的實(shí)現(xiàn)原理和在提高網(wǎng)站性能方面的應(yīng)用。Squid反向代理服務(wù)器位于本地 WEB 服務(wù)器和 Inter 之間 , 組織架構(gòu)如下圖:客戶端請(qǐng)求訪問 WEB 服務(wù)時(shí),DNS 將訪問的域名解析為 Squid 反向代理服務(wù)器的 IP 地址,這樣客戶端的 URL 請(qǐng)求將被發(fā)送到反向代理服務(wù)器。如果 Squid 反向代理服務(wù)器中緩存了該請(qǐng)求的資源,則將該請(qǐng)求的資源直接返回給客戶端,否則反向代理服務(wù)器將向后臺(tái)的 WEB 服務(wù)器請(qǐng)求資源,然后將請(qǐng)求的應(yīng)答返回給客戶端,同時(shí)也將該應(yīng)答緩存在本地,供下一個(gè)請(qǐng)求者使用。Squid 反向代理一般只緩存可緩沖的數(shù)據(jù)(比如 html 網(wǎng)頁和圖片等),而一些 CGI 腳本程序或者 ASP、JSP 之類的動(dòng)態(tài)程序默認(rèn)不緩存。它根據(jù)從 WEB 服務(wù)器返回的 HTTP 頭標(biāo)記來緩沖靜態(tài)頁面, 有四個(gè)最重要 HTTP 頭標(biāo)記:? LastModified: 告訴反向代理頁面什么時(shí)間被修改? Expires: 告訴反向代理頁面什么時(shí)間應(yīng)該從緩沖區(qū)中刪除? CacheControl: 告訴反向代理頁面是否應(yīng)該被緩沖? Pragma: 用來包含實(shí)現(xiàn)特定的指令,最常用的是 Pragma:nocache