『壹』 網站的基本架構是什麼
網站架構按照製作步驟分為硬架構和軟架構。
一、硬架構
1、機房:在選擇機房的時候,根據網站用戶的地域分布,可以選擇網通、電信等單機房或雙機房。
2、帶寬:預估網站每天的訪問量,根據訪問量選擇合適的帶寬,計算帶寬大小主要涉及峰值流量和頁面大小兩個指標。
3、伺服器:選擇需要的伺服器,如圖片伺服器,頁面伺服器,資料庫伺服器,應用伺服器,日誌伺服器,對於訪問量大點的網站而言,分離單獨的圖片伺服器和頁面伺服器相當必要。
二、軟架構
1、網站的框架:現在的PHP框架有很多選擇,比如:CakePHP,Symfony,Zend Framework,根據創作團隊對各個框架熟悉程度選擇。
2、邏輯的分層
1)表現層:所有和表現相關的邏輯都應該被納入表現層的范疇。
2)應用層:主要作用是定義用戶可以做什麼,並把操作結果反饋給表現層。
3)領域層:包含領域邏輯的層,就是告訴用戶具體的操作流程的。
4)持久層:即資料庫,保存領域模型保存到資料庫,包含網站的架構和邏輯關系等。
(1)網站結構是怎麼回事擴展閱讀
網站的分類
1、根據網站所用編程語言分類:例如asp網站、php網站、jsp網站、Asp. net網站等;
2、根據網站的用途分類:例如門戶網站(綜合網站)、行業網站、娛樂網站等;
3、根據網站的功能分類:例如單一網站(企業網站)、多功能網站(網路商城)等等。
4、根據網站的持有者分類:例如個人網站、商業網站、政府網站、教育網站等。
5、根據網站的商業目的分類:營利型網站(行業網站、論壇)、非營利性型網站(企業網站、政府網站、教育網站)。
『貳』 網站結構主要包括哪些方面
一個網頁的組成,頁面框架+美工+程序+資料庫。
頁面框架:也就是網站的結構設計,包括了UI和LOGO等,總體來說是為了方便用戶操作記性的界面,效果,已經頁仔源面的流程進行的設計。
美工:要求會廳或的最基本的幾個軟體PHOTOSHOP,FLASH,FIREWORKS ,一般網站設計用PS比較多。
程序:要求會的語言很多,包括客戶端的腳念伏態本語言和服務端的語言,客戶端語言包含HTML,JAVASCRIPT,VBSCRIPT,服務端語言包括,ASP,JSP,PHP,.net等等。 資料庫方面:用的資料庫也許有很多種,我見過有用ACCESS的,也有SQLSERVER的,還有DB2,ORECLE等等。一般對於網站來說如果不是象銀行這樣的大規模數據交換,SQLSERVER已經足以。
『叄』 網站的結構都有什麼
網站的目錄結構
網站的目錄是指在創建網站時建立的目錄,我們要根據網站的主題和內容來分類規劃,不同的欄目要對應不同的目錄,在各個欄目目錄下我們也要根據內容的不同對其劃分不同的分目錄,比如說頁面圖片放到images目錄下,新聞放到news目錄下,資料庫放到database目錄下等等。同時要注意目錄的的層次不宜太深,一般不要超過三層,另外給目錄起名的時候要盡量使用能表達目錄內容的英文或漢語拼音,這樣會更加方便日後的管理維護。
網頁的構成和布局
不同主題的網站對網頁內容的安排會有所不同,但大多數網站首頁的頁面結構都會包括頁面標題、網站LOGO、導航欄、登錄區、搜索租輪區、熱點推薦區、主內容區和頁腳區(如圖),其他頁面不需要設置如此復雜了,一般由頁面標題、網站LOGO、導航欄、主內容區和頁腳區等構成。
搞網站設計不是把所有內容放置到網頁中就行了,還需要我們把網頁內容進行合理的排版布局,以給瀏覽返咐者賞心悅目的感覺,增強網站的吸引力。在設計布局的時候我們要注意把文字、圖片在網頁空間上均勻分布並且不同形狀、色彩的網頁元素要相互對比,以形成鮮明的視覺效果。我們常見的布局結構有
「同」字形布局、「國」字形布局、「匡」字形布局、「三」字形布局和「川」字形布局等。
1.
「同」字形布局:所謂「同」字形結構,就是整個頁面布局類似「同」字,頁面頂部是主導航欄,下面左右兩側是二級導航條、登錄區、搜索區等,中間是主內容區,如http://www.china-channel.com。
2.
「國」字形布局:它是在「同」字形布局上演化而來的,它在保留「同」字形的同時,在頁面的下方增加一橫條狀的菜單或廣告,如http://www.yesky.com。
3.
「匡」字形布局:這種布局結構去掉了「國」字形布局的右邊的邊框部分,給主內容區釋放了更多空間,內容雖看起來比較多,但布局整齊又不過於擁擠,適合一些下載類和賀卡類站點使用,如http://nj.onlinedown.net。
4.
「三」字形布局:一般應用在簡潔弊世信明快的藝術性網頁布局,這種布局一般採用簡單的圖片和線條代替擁擠的文字,給瀏覽者以強烈的視覺沖擊,如http://www.cphoto.com.cn。
5.
「川」字形布局:整個頁面在垂直方向分為三列,網站的內容按欄目分布在這三列中,最大限度地突出主頁的索引功能,一般適用在欄目較多的網站里,如http://www.ezIT.com.cn。
『肆』 什麼是網站架構
網站架構,一般認為是根據客戶需求分析的結果,准確定位網站目標群體,設定網站整體架構,規劃、設計網站欄目及其內容,制定網站開發流程及順序,以最大限度地進行高效資源分配與管理的設計。其內容有程序架構,呈現架構,和信息架構三種表現。而步驟主要分為硬架構和軟架構兩步程序。網路架構是現代網路學習和發展的一個必須的基礎技術。
中文名
網站架構
一般認為
根據客戶需求分析的結果
制定
網站開發流程及順序
內容
程序架構,呈現架構
快速
導航
軟架構八個方案
硬架構
機房的選擇
在選擇機房的時候,根據網站用戶的地域分布,可以選擇網通或電信機房,但更多時候,可能雙線機房才是合適的。越大的城市,機房價格越貴,從成本的角度看可以在一些中小城市託管伺服器,比如說北京的公司可以考慮把伺服器託管在天津,廊坊等地,不是特別遠,但是價格會便宜很多。
帶寬的大小
通常老闆花錢請我們架構網站的時候,會給我們提出一些目標,諸如網站每天要能承受100萬PV的訪問量等等。這時我們要預算一下大概需要多大的帶寬,計算帶寬大小主要涉及兩個指標(峰值流量和頁面大小),我們不妨在計算前先做出必要的假設:
第一:假設峰值流量是平均流量的5倍。
第二:假設每次訪問平均的頁面大小是100K位元組左右。
如果100萬PV的訪問量在一天內平均分布的話,摺合到每秒大約12次訪問,如果按平均每次訪問頁面的大小是100K位元組左右計算的話,這12次訪問總計大約就是1200K位元組,位元組的單位是Byte,而帶寬的單位是bit,它們之間的關系是1Byte = 8bit,所以1200K Byte大致就相當於9600K bit,也就是9Mbps的樣子,實際情況中,我們的網站必須能在峰值流量時保持正常訪問,所以按照假設的峰值流量算,真實帶寬的需求應該在45Mbps 左右。
當然,這個結論是建立在前面提到的兩點假設的基礎上,如果你的實際情況和這兩點假設有出入,那麼結果也會有差別。
伺服器的劃分
先看我們都需要哪些伺服器:圖片伺服器,頁面伺服器,資料庫伺服器,應用伺服器,日誌伺服器等等。
對於訪問量大點的網站而言,分離單獨的圖片伺服器和頁面伺服器相當必要,我們可以用lighttpd來跑圖片伺服器,用apache來跑頁面伺服器,當然也可以選擇別的,甚至,我們可以擴展成很多台圖片伺服器和很多台頁面伺服器,並設置相關域名,如img.domain和 www.domain,頁面里的圖片路徑都使用絕對路徑,如<img src="http://img.domain/abc.gif" />,然後設置DNS輪循,達到最初級的負載均衡。當然,伺服器多了就不可避免的涉及一個同步的問題,這個可以使用rsync軟體來搞定。
資料庫伺服器是重中之重,因為網站的瓶頸問題十有八九是出在資料庫身上。一般的中小網站多使用MySQL資料庫,不過它的集群功能似乎還沒有達到stable的階段,所以這里不做評價。一般而言,使用MySQL資料庫的時候,我們應該搞一個主從(一主多從)結構,主資料庫伺服器使用innodb表結構,從數據伺服器使用myisam表結構,充分發揮它們各自的優勢,而且這樣的主從結構分離了讀寫操作,降低了讀操作的壓力,甚至我們還可以設定一個專門的從伺服器做備份伺服器,方便備份。不然如果你只有一台主伺服器,在大數據量的情況下,mysqlmp基本就沒戲了,直接拷貝數據文件的話,還得先停止資料庫服務再拷貝,否則備份文件會出錯。但對於很多網站而言,即使資料庫服務僅停止了一秒也是不可接受的。如果你有了一台從資料庫伺服器,在備份數據的時候,可以先停止服務(slave stop)再備份,再啟動服務(slave start)後從伺服器會自動從主伺服器同步數據,一切都沒有影響。但是主從結構也是有致命缺點的,那就是主從結構只是降低了讀操作的壓力,卻不能降低寫操作的壓力。
為了適應更大的規模,可能只剩下最後這招了:橫向/縱向分割資料庫。所謂橫向分割資料庫,就是把不同的表保存到不同的資料庫伺服器上,比如說 用戶表保存在A資料庫伺服器上,文章表保存在B資料庫伺服器上,當然這樣的分割是有代價的,最基本的就是你沒法進行LEFT JOIN之類的操作了。所謂縱向分割資料庫,一般是指按照用戶標識(user_id)等來劃分數據存儲的伺服器,比如說:我們有5台資料庫伺服器,那麼 「user_id % 5 + 1」等於1的就保存到1號伺服器,等於2的就保存到2號伺服器,以此類推,縱向分隔的原則有很多種,可以視情況選擇。不過和橫向分割資料庫一樣,縱向分割資料庫也是有代價的,最基本的就是我們在進行如COUNT, SUM等匯總操作的時候會麻煩很多。綜上所述,資料庫伺服器的解決方案一般視情況往往是一個混合的方案,以其發揮各種方案的優勢,有時候還需要藉助memcached之類的第三方軟體,以便適應更大訪問量的要求。
如果有專門的應用伺服器來跑PHP腳本是最合適不過的了,那樣我們的頁面伺服器只保存靜態頁面就可以了,可以給應用伺服器設置一些諸如app.domain之類的域名來和頁面伺服器加以區別。對於應用伺服器,我還是更傾向於使用prefork模式的apache,配上必要的xcache之類的PHP緩存軟體,載入模塊要越少越好,除了mod_rewrite等必要的模塊,不必要的東西統統舍棄,盡量減少httpd進程的內存消耗,而那些圖片伺服器,頁面伺服器等靜態內容就可以使用lighttpd或者tux來搞,充分發揮各種伺服器的特點。
如果條件允許,獨立的日誌伺服器也是必要的,一般小網站的做法都是把頁面伺服器和日誌伺服器合二為一了,在凌晨訪問量不大的時候cron運行前一天的日誌計算,不過如果你使用awstats之類的日誌分析軟體,對於百萬級訪問量而言,即使按天歸檔,也會消耗很多時間和伺服器資源去計算,所以分離單獨的日誌伺服器還是有好處的,這樣不會影響正式伺服器的工作狀態。
軟架構
框架的選擇
PHP框架有很多選擇,比如:CakePHP,Symfony,Zend Framework等等,至於應該使用哪一個並沒有唯一的答案,要根據Team里團隊成員對各個框架的了解程度而定。很多時候,即使沒有使用框架,一樣能 寫出好的程序來,比如Flickr據說就是用Pear+Smarty這樣的類庫寫出來的,所以,是否用框架,用什麼框架,一般不是最重要的,重要的是我們 的編程思想里要有框架的意識。
邏輯的分層