對于訪問量大點的網(wǎng)站而言,分離單獨的圖片服務(wù)器和頁面服務(wù)器相當(dāng)必要,我們可以用lighttpd來跑圖片服務(wù)器,用ap" />

国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

18143453325 在線咨詢 在線咨詢
18143453325 在線咨詢
所在位置: 首頁 > 營銷資訊 > 營銷百科 > 網(wǎng)站架構(gòu)八個方案

網(wǎng)站架構(gòu)八個方案

時間:2023-02-18 08:20:01 | 來源:營銷百科

時間:2023-02-18 08:20:01 來源:營銷百科

網(wǎng)站架構(gòu)八個方案:先看我們都需要哪些服務(wù)器:圖片服務(wù)器,頁面服務(wù)器,數(shù)據(jù)庫服務(wù)器,應(yīng)用服務(wù)器,日志服務(wù)器等等。

對于訪問量大點的網(wǎng)站而言,分離單獨的圖片服務(wù)器和頁面服務(wù)器相當(dāng)必要,我們可以用lighttpd來跑圖片服務(wù)器,用apache來跑頁面服務(wù)器,當(dāng)然也可以選擇別的,甚至,我們可以擴(kuò)展成很多臺圖片服務(wù)器和很多臺頁面服務(wù)器,并設(shè)置相關(guān)域名,如img.domain和 www.domain,頁面里的圖片路徑都使用絕對路徑,然后設(shè)置DNS輪循,達(dá)到最初級的負(fù)載均衡。當(dāng)然,服務(wù)器多了就不可避免的涉及一個同步的問題,這個可以使用rsync軟件來搞定。

數(shù)據(jù)庫服務(wù)器是重中之重,因為網(wǎng)站的瓶頸問題十有八九是出在數(shù)據(jù)庫身上?,F(xiàn)在一般的中小網(wǎng)站多使用MySQL數(shù)據(jù)庫,不過它的集群功能似乎還沒有達(dá)到stable的階段,所以這里不做評價。一般而言,使用MySQL數(shù)據(jù)庫的時候,我們應(yīng)該搞一個主從(一主多從)結(jié)構(gòu),主數(shù)據(jù)庫服務(wù)器使用innodb表結(jié)構(gòu),從數(shù)據(jù)服務(wù)器使用myisam表結(jié)構(gòu),充分發(fā)揮它們各自的優(yōu)勢,而且這樣的主從結(jié)構(gòu)分離了讀寫操作,降低了讀操作的壓力,甚至我們還可以設(shè)定一個專門的從服務(wù)器做備份服務(wù)器,方便備份。不然如果你只有一臺主服務(wù)器,在大數(shù)據(jù)量的情況下,mysqldump基本就沒戲了,直接拷貝數(shù)據(jù)文件的話,還得先停止數(shù)據(jù)庫服務(wù)再拷貝,否則備份文件會出錯。但對于很多網(wǎng)站而言,即使數(shù)據(jù)庫服務(wù)僅停止了一秒也是不可接受的。如果你有了一臺從數(shù)據(jù)庫服務(wù)器,在備份數(shù)據(jù)的時候,可以先停止服務(wù)(slave stop)再備份,再啟動服務(wù)(slave start)后從服務(wù)器會自動從主服務(wù)器同步數(shù)據(jù),一切都沒有影響。但是主從結(jié)構(gòu)也是有致命缺點的,那就是主從結(jié)構(gòu)只是降低了讀操作的壓力,卻不能降低寫操作的壓力。

為了適應(yīng)更大的規(guī)模,可能只剩下最后這招了:橫向/縱向分割數(shù)據(jù)庫。所謂橫向分割數(shù)據(jù)庫,就是把不同的表保存到不同的數(shù)據(jù)庫服務(wù)器上,比如說 用戶表保存在A數(shù)據(jù)庫服務(wù)器上,文章表保存在B數(shù)據(jù)庫服務(wù)器上,當(dāng)然這樣的分割是有代價的,最基本的就是你沒法進(jìn)行LEFT JOIN之類的操作了。所謂縱向分割數(shù)據(jù)庫,一般是指按照用戶標(biāo)識(user_id)等來劃分?jǐn)?shù)據(jù)存儲的服務(wù)器,比如說:我們有5臺數(shù)據(jù)庫服務(wù)器,那么 'user_id % 5 1'等于1的就保存到1號服務(wù)器,等于2的就保存到2號服務(wù)器,以此類推,縱向分隔的原則有很多種,可以視情況選擇。不過和橫向分割數(shù)據(jù)庫一樣,縱向分割數(shù)據(jù)庫也是有代價的,最基本的就是我們在進(jìn)行如COUNT, SUM等匯總操作的時候會麻煩很多。綜上所述,數(shù)據(jù)庫服務(wù)器的解決方案一般視情況往往是一個混合的方案,以其發(fā)揮各種方案的優(yōu)勢,有時候還需要借助memcached之類的第三方軟件,以便適應(yīng)更大訪問量的要求。

如果有專門的應(yīng)用服務(wù)器來跑PHP腳本是最合適不過的了,那樣我們的頁面服務(wù)器只保存靜態(tài)頁面就可以了,可以給應(yīng)用服務(wù)器設(shè)置一些諸如app.domain之類的域名來和頁面服務(wù)器加以區(qū)別。對于應(yīng)用服務(wù)器,我還是更傾向于使用prefork模式的apache,配上必要的xcache之類的PHP緩存軟件,加載模塊要越少越好,除了mod_rewrite等必要的模塊,不必要的東西統(tǒng)統(tǒng)舍棄,盡量減少httpd進(jìn)程的內(nèi)存消耗,而那些圖片服務(wù)器,頁面服務(wù)器等靜態(tài)內(nèi)容就可以使用lighttpd或者tux來搞,充分發(fā)揮各種服務(wù)器的特點。

如果條件允許,獨立的日志服務(wù)器也是必要的,一般小網(wǎng)站的做法都是把頁面服務(wù)器和日志服務(wù)器合二為一了,在凌晨訪問量不大的時候cron運行前一天的日志計算,不過如果你使用awstats之類的日志分析軟件,對于百萬級訪問量而言,即使按天歸檔,也會消耗很多時間和服務(wù)器資源去計算,所以分離單獨的日志服務(wù)器還是有好處的,這樣不會影響正式服務(wù)器的工作狀態(tài)。

關(guān)鍵詞:方案

74
73
25
news

版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點擊下載Chrome瀏覽器
關(guān)閉