1.什么是靜態(tài)網(wǎng)頁資源危彩?
放在服務(wù)器上看到的是什么,顯示的就是什么泳桦,一旦存于服務(wù)器上們就不會有任何改變
靜態(tài)內(nèi)容特點:
優(yōu)點:
1.圖片汤徽,附件,視頻灸撰,前端頁面語言谒府,html,.js,.css,等
2.客戶端解析(效率更高)浮毯,而不是服務(wù)端解析狱掂。? #性能優(yōu)化關(guān)鍵
? ? ? ? ? ? ? ? 飯店是出示給你做好,放好調(diào)料亲轨,給你端過來趋惨,讓你吃,叫服務(wù)端解析
? ? ? ? ? ? ? ? 自主惦蚊,火鍋是你自己弄器虾,叫客戶端解析**
3.地址欄里沒有特殊符號,比如&&蹦锋、兆沙?符等等
4.網(wǎng)頁發(fā)布一旦完成,就不會改變莉掂,(除非人工修改)這樣客戶更容易找到
5.靜態(tài)網(wǎng)頁存儲地點:存儲與(NFS)這樣的服務(wù)里(共享存儲)
6.內(nèi)容來源(核心:用戶上傳:圖片視頻等葛圃;程序員開發(fā)的代碼(.html,.js,.css))
7)網(wǎng)頁程序在用戶瀏覽器端解析,如IE瀏覽器,程序解析效率很高,由于服務(wù)端不進行解析,并且不需要讀取數(shù)據(jù)庫,因此服務(wù)器端可以接受更多的并發(fā)訪問。當(dāng)客戶端向服務(wù)器請求數(shù)據(jù)時,服務(wù)器直接把數(shù)據(jù)從磁盤文件系統(tǒng)上返回(不做任何解析) ,待客戶端拿到數(shù)據(jù)后,在瀏覽器端解析展現(xiàn)出來(優(yōu)點) 。
缺點:
1.后端沒有數(shù)據(jù)庫库正。在網(wǎng)站制作和維護方面工作量較大曲楚,因此當(dāng)網(wǎng)站信息量很大時,完全依靠靜態(tài)資源網(wǎng)頁制作的方式比較困難(缺點)
2)網(wǎng)頁的交互性較差,在程序功能實現(xiàn)方面有較大的限制(缺點)
靜態(tài)網(wǎng)頁資源的對應(yīng)程序及資源文件的常見擴展名為:
純文本類程序或文件,如htm褥符、html, xml, shtml龙誊、 js. css等。
圖片類文件或數(shù)據(jù)文檔,如jpg,gif, png, bmp,txt, doc, ppt等喷楣。
視頻類流媒體文件,如mp4,swf, avi, wmv.flv等趟大。
高并發(fā)的情況下必須用靜態(tài)網(wǎng)頁 (客戶端自己解析)
在高并發(fā)、高訪間量的場景下做架構(gòu)優(yōu)化,涉及的關(guān)鍵環(huán)節(jié)就是把動態(tài)網(wǎng)頁轉(zhuǎn)成靜態(tài)網(wǎng)頁,而不直接請求數(shù)據(jù)庫和動態(tài)服務(wù)器,并且可以把靜態(tài)內(nèi)容推送到前端緩存(或CDN)中提供服務(wù),這樣就可以提升用戶體驗,節(jié)約服務(wù)器和維護成本铣焊。
動態(tài)網(wǎng)頁六大特點:
0)動態(tài)資源網(wǎng)站鏈接中含有特殊符號逊朽,比如&&、曲伊?叽讳、等等
1)網(wǎng)頁擴展名后綴常見為: .asp, .aspx,.php,.jsp,.do,.cgi等。
2)網(wǎng)頁一般以數(shù)據(jù)庫技術(shù)為基礎(chǔ),大大降低了網(wǎng)站維護的工作量熊昌。
3)采用動態(tài)網(wǎng)頁技術(shù)的網(wǎng)站可以實現(xiàn)更多的功能,如用戶注冊绽榛、用戶登錄湿酸、在線調(diào)查婿屹、投票、用戶管理推溃、訂單管理昂利、發(fā)博文等等。
4)動態(tài)網(wǎng)頁并不是獨立存在于服務(wù)器上的網(wǎng)頁文件,當(dāng)用戶請求服務(wù)器上的動態(tài)程序時,服務(wù)器解析這些程序并可能讀取數(shù)據(jù)庫返回一個完整的網(wǎng)頁內(nèi)容铁坎。
5)動態(tài)網(wǎng)頁中的“?"在搜索引擎的收錄方面存在一定的問題,搜索引擎一般不會從一個網(wǎng)站的數(shù)據(jù)庫中訪問全部網(wǎng)頁,或者出于技術(shù)等方面的考慮,搜索蜘蛛一般不會去抓取網(wǎng)址中“?”后面的內(nèi)容,因此在企業(yè)通過搜索引擎進行推廣時,需要針對采用動態(tài)網(wǎng)頁的網(wǎng)站做一定的技術(shù)處理(偽靜態(tài)技術(shù)) ,以便適應(yīng)搜索引擎的抓取要求蜂奸。
6)程序在服務(wù)器端解析,這相當(dāng)于顧客點餐,飯店廚師做飯做菜,耗時長,效率低。由于程序在服務(wù)端解析,因此,會消耗大量的CPU和內(nèi)存硬萍、1/O等資源,并且多數(shù)還要讀取數(shù)據(jù)庫等服務(wù),因此,其訪問效率遠不如靜態(tài)網(wǎng)頁,在服務(wù)端解析動態(tài)程序的服務(wù)常見的右pHp引整 lava容器(tamcat resin. iboss wehlooic)
總結(jié):
靜態(tài)效率高
動態(tài)消耗資源大
靜態(tài)屬于客戶端解析
動態(tài)屬于服務(wù)端解析
性能方面:靜態(tài)好
功能方面:動態(tài)好
維護方面:動態(tài)好
高并發(fā)時扩所,三者都得滿足
什么是偽靜態(tài)網(wǎng)頁
偽靜態(tài)就是通過某些技術(shù)(如rewrite)把動態(tài)網(wǎng)頁的URL地址偽裝成靜態(tài)網(wǎng)頁URL地址,但實質(zhì)上用戶訪問的還是動態(tài)網(wǎng)頁,只不過給用戶看起來URL地址是符合靜態(tài)網(wǎng)頁地址特征的,因此,用戶及某些搜索引擎會誤認為是靜態(tài)網(wǎng)頁。
為什么要把動態(tài)頁面做成偽靜態(tài)頁面朴乖?
動態(tài)網(wǎng)頁鏈接中的“?祖屏、&&等特殊符號"在搜索引擎的收錄方面存在一定的問題,搜索引擎一般不會從一個網(wǎng)站的數(shù)據(jù)庫中訪問全部網(wǎng)頁,或者出于技術(shù)等方面的考慮,搜索蜘蛛一般不會去抓取網(wǎng)址中“?”后面的內(nèi)容,因此在企業(yè)通過搜索引擎進行推廣時,需要針對采用動態(tài)網(wǎng)頁的網(wǎng)站做一定的技術(shù)處理(偽靜態(tài)技術(shù)) ,以便適應(yīng)搜索引擎的抓取要求。
偽靜態(tài)網(wǎng)頁特點
從網(wǎng)站的URL地址看,偽靜態(tài)表面上看起來是靜態(tài)內(nèi)容(如地址結(jié)尾帶html买羞,連接中無特殊符號) ,這是通過rewrite規(guī)則來實現(xiàn)的URL地址重寫袁勺。改寫后的URL地址規(guī)范、美觀,有利于搜索引擎抓取,以及提升用戶訪問體驗畜普。如: http://oldboy.blog.51cto.com/2561410/803606和 http://www.discuz.net/forum-3967-1.html這樣的兩個地址都是偽靜態(tài)的期丰。因為偽靜態(tài)網(wǎng)頁還是動態(tài)網(wǎng)頁,從性能上考慮,偽靜態(tài)功能不但沒有提升網(wǎng)站性能,反而會降低網(wǎng)站的性能。這一點讀者要理解。那么,有些讀者可能就會有疑問了,為什么動態(tài)網(wǎng)頁需要偽裝成靜態(tài)呢?為什么不能直接轉(zhuǎn)成靜態(tài)網(wǎng)頁呢?
偽靜態(tài)網(wǎng)頁作用
由于搜索引擎無法正確讀取帶參數(shù)的動態(tài)網(wǎng)頁內(nèi)容,造成網(wǎng)頁中很多具有豐富信息的頁面無法被搜索引擎收錄,因此才有了偽靜態(tài)技術(shù),它的作用是把動態(tài)網(wǎng)頁URL改寫成靜態(tài)網(wǎng)頁的URL,雖然同樣是消除了動態(tài)網(wǎng)頁中的參數(shù),但是并不需要生成任何網(wǎng)頁,僅僅是改變了網(wǎng)頁地址路徑,這樣做的主要目的有兩個,一是讓搜索引擎收錄網(wǎng)站內(nèi)容,實現(xiàn)讓更多的用戶訪問企業(yè)網(wǎng)站內(nèi)容,二是提升用戶訪問體驗,動態(tài)地址帶特殊符號等的URL看起來也不如看著靜態(tài)網(wǎng)頁地址舒服钝荡。
偽靜態(tài)網(wǎng)頁的缺點
動態(tài)網(wǎng)頁偽裝靜態(tài)網(wǎng)頁,雖然可以讓搜索引擎收錄,并且可提升用戶訪問體驗,但偽靜態(tài)網(wǎng)頁并不能提升網(wǎng)站的訪問效率性能,從理論上說還會降低網(wǎng)站的性能,沒有動態(tài)轉(zhuǎn)靜態(tài)網(wǎng)頁效率高,但是對于一些并發(fā)不是超大的情況來說,或者是硬件資源充足的情況來說,偽靜態(tài)還是一個不錯的實用功能,因為,要把動態(tài)網(wǎng)頁真正地轉(zhuǎn)成靜態(tài)網(wǎng)頁,不是一朝一夕的事情,需要技術(shù)團隊通力配合才能行街立。
現(xiàn)在很多大型的網(wǎng)站都采用了動態(tài)網(wǎng)頁生成靜態(tài)網(wǎng)頁的技術(shù),消除動態(tài)網(wǎng)頁中的參數(shù),使搜索引擎收錄更多的內(nèi)容,達到優(yōu)化網(wǎng)站的效果。當(dāng)網(wǎng)站遇到訪問瓶頸時,如果有技術(shù)力量將動態(tài)網(wǎng)頁轉(zhuǎn)化成靜態(tài)網(wǎng)頁,那就再好不過了,但是,有些更新頻率很快的業(yè)務(wù)并不適合這么做,或者將動態(tài)轉(zhuǎn)為靜態(tài)有很大難度,這時就可以考慮設(shè)置偽靜態(tài)化撕。相關(guān)架構(gòu)內(nèi)容可以參加老男孩老師高級架構(gòu)師課程內(nèi)容几晤。
偽靜態(tài)網(wǎng)頁小結(jié)
利用rewrite技術(shù)將動態(tài)網(wǎng)頁偽裝成靜態(tài)網(wǎng)頁(URL地址改寫).
便于搜索引擎搜錄提升用戶訪問量以及用戶體驗
訪問性能沒有提升,并且轉(zhuǎn)換偽靜態(tài)會消耗資源,因此性能反而會下降.
如果為了性能,就盡可能將動態(tài)網(wǎng)頁轉(zhuǎn)換成真正的靜態(tài)頁面。
并發(fā)量不是很大或者動態(tài)更新過于頻繁的時候,用rewrite實現(xiàn)偽靜態(tài)也是不錯的
偽靜態(tài)網(wǎng)頁的實現(xiàn)過程,一般是由運營產(chǎn)品提出需求,開發(fā)和運維共同實現(xiàn)的植阴。
門戶新聞業(yè)務(wù)
新聞網(wǎng)站的特點是一旦發(fā)布完成,幾乎不會再改動網(wǎng)頁內(nèi)容蟹瘾。因此,對于新聞業(yè)務(wù)內(nèi)容的靜態(tài)化相對比較簡單。
第一步:程序要支持發(fā)布動態(tài)內(nèi)容轉(zhuǎn)成靜態(tài)功能掠手。
第二步:運營編輯人員發(fā)布新聞網(wǎng)頁(內(nèi)容進數(shù)據(jù)庫,圖片憾朴、視頻進入存儲)后,后臺程序立刻將動態(tài)網(wǎng)頁生成靜態(tài)文件(生成html文件放到存儲上) 。
第三步:運維人員通過發(fā)布或事件觸發(fā)把運營編輯生成的靜態(tài)網(wǎng)頁發(fā)布到事先搭建好的公司緩存集群服務(wù)器上,或者把靜態(tài)內(nèi)容同步到購買的全國所有CDN服務(wù)器節(jié)點上,然后,再提供給用戶提供訪問瀏覽喷鸽。
利用CDN加速:
2.視頻網(wǎng)站業(yè)務(wù)
視頻網(wǎng)站和新聞網(wǎng)站類似,特點都是一旦發(fā)布完成,幾乎不會再改動網(wǎng)頁內(nèi)容众雷。因此,實現(xiàn)視頻業(yè)務(wù)網(wǎng)站高效訪問也很簡單。
以優(yōu)酷視頻網(wǎng)為例,用戶在上傳視頻時,需要經(jīng)歷轉(zhuǎn)碼→審核的過程(大概1個小時),然后一些熱點視頻也可能會被提前推送同步到CDN的核心節(jié)點或全國所有CDN服務(wù)器節(jié)點,用戶訪問時才會更快做祝。
1)凡是發(fā)布后不需要再改的網(wǎng)站業(yè)務(wù)砾省,都可以直接靜態(tài)化,(一臺頂十臺)
? ? ? 或者需要改也行混槐,但前提是公司內(nèi)部人員更改编兄。(重新靜態(tài)化的過程)
2)用戶上傳修改,然后還實時要求高声登。靜態(tài)化最難狠鸳,如::
Blog/BBS/SNS/微博社區(qū)業(yè)務(wù)/電商(如淘寶、京東)
這幾類業(yè)務(wù)的動態(tài)轉(zhuǎn)靜態(tài)是比較困難的,因為,用戶發(fā)布完成內(nèi)容,可能會隨時更新并查看,這種情況一般會通過異步方式,例如消息中間件技術(shù)加上NoSQL集群技術(shù)實現(xiàn)實現(xiàn)轉(zhuǎn)換,當(dāng)然也會改進產(chǎn)品細節(jié),例如:在訪問的環(huán)節(jié)設(shè)置延時悯嗓、異步加載等手段,
較為詳細的說明見如博客“淺談千萬級PVIP規(guī)模高性能高并發(fā)網(wǎng)站(http://oldboy.blog.51cto.com/2561410/736710和http://edu.5 1cto.com/course/course id-3093.html)
上邊這個博客看一下^
生產(chǎn)Web架構(gòu)優(yōu)化實戰(zhàn)方案
由于靜態(tài)網(wǎng)頁程序在客戶端解析,大大降低了服務(wù)器端的訪問壓力,因此解析效率更高,在實際高并發(fā)網(wǎng)站架構(gòu)中,可以考慮把用戶請求的數(shù)據(jù)解析后存成靜態(tài)文件放于磁盤中或放于內(nèi)存中,來降低動態(tài)服務(wù)器的壓力,節(jié)約企業(yè)成本,提升用戶體驗件舵。
有關(guān)高并發(fā)網(wǎng)站架構(gòu)從動態(tài)轉(zhuǎn)靜態(tài)的內(nèi)容,可以參考老男孩老師的文章“淺談千萬級PV/IP規(guī)模高性能高并發(fā)網(wǎng)站架構(gòu)” : http://oldboy.blog.51cto.com/2561410/736710?
下面介紹幾個高并發(fā)網(wǎng)站架構(gòu)從動態(tài)轉(zhuǎn)靜態(tài)不用更改企業(yè)業(yè)務(wù)產(chǎn)品代碼就可以實現(xiàn)的例子。
用戶上傳的內(nèi)容了脯厨,然后還要修改铅祸,然后還要實時訪問,把他靜態(tài)化最難合武,思路如下:
IP\PV\UP的區(qū)別
IP就是一個公網(wǎng)地址临梗,我們教室訪問公網(wǎng)時,用的是一個IP眯杏。以天為單位
pv就是瀏覽頁面的次數(shù)夜焦,打開一個頁面算一個pv,不管幾個用戶訪問∑穹罚現(xiàn)在一般把pv的統(tǒng)計程序放到頁面的最下邊茫经,也就是必修瀏覽頁面到低巷波,才會計入一次pv,防止刷pv。
老師的公司的服務(wù)器一天五千萬pv卸伞,也就是瀏覽量五千萬
百度一天千億pv抹镊,也就是一天瀏覽量五千億次
UV 就是是每臺計算機訪問時,系統(tǒng)自動給這臺計算機一個Cookie荤傲,按照計算機的量來定UV
企業(yè)網(wǎng)站對IP, PV, UV的度量
對IP的度量:
分析所有Web服務(wù)器的訪問日志信息,對IP地址段去重后計數(shù),這是IT人員的基本計算手段垮耳。
在網(wǎng)站的每一個(所有)頁面結(jié)尾,嵌入JS等統(tǒng)計程序代碼,待用戶加載網(wǎng)頁后, IP即傳給統(tǒng)計IP的服務(wù)器,這種方法一般被第三方統(tǒng)計公司或企業(yè)內(nèi)部開發(fā)日志分析程序時使用。
用第三方大家比較信任的統(tǒng)計工具例如:谷歌的統(tǒng)計(GA).
對PV的度量如下:
分析Web服務(wù)的訪問日志(需要排除js.css及各種圖片的日志信息),只計算HTML.PHP等頁面數(shù)量遂黍。
在網(wǎng)站的每一個頁面結(jié)尾,嵌入Js等統(tǒng)計程序代碼,待用戶加載網(wǎng)頁后,訪問數(shù)量即傳給統(tǒng)計PV的服務(wù)器,這種方法一般被第三方統(tǒng)計公司或在企業(yè)內(nèi)部開發(fā)日志分析程序時使用
用第三方大家比較信任的統(tǒng)計工具例如:谷歌的統(tǒng)計(GA) 终佛。
UV度量:
通過Cookie鑒別。當(dāng)客戶端第一次訪問某個網(wǎng)站服務(wù)器的時候,網(wǎng)站服務(wù)器會給這個客戶端的電腦發(fā)出一個Cookie,通常放在這個客戶端電腦的C盤當(dāng)中雾家。在這個Cookie中會分配一個獨一無二的編號,這其中會記錄一些訪問服務(wù)器的信息,如訪問時間铃彰、訪問了哪些頁面,等等。當(dāng)你下次再訪問這個服務(wù)器的時候,服務(wù)器就可以直接從你的電腦中找到上一次放進去的 Cookie文件,并且對其進行一些更新,但那個獨一無二的編號是不會變的芯咧。如果在一定時?間內(nèi),服務(wù)器發(fā)現(xiàn)2個來訪者對應(yīng)的是一個編號,那么自然可以認為它來源于同一個來訪者了,于是就計算1個UV.
網(wǎng)站流量統(tǒng)計工具軟件
PWIKI ? awstats ? ?ELK收集日志牙捉。
在線統(tǒng)計流量工具。
并發(fā)連接:::
A種理解:網(wǎng)站服務(wù)器每秒能夠接收的最大用戶請求數(shù)敬飒。
B種理解:網(wǎng)站服務(wù)器每秒能夠響應(yīng)的最大用戶請求數(shù)邪铲。
C種理解:網(wǎng)站服務(wù)器在單位時間內(nèi)能夠處理的最大連接數(shù)。
雖然A. B的理解占IT人員中的大多數(shù),但是,按照老男孩的理解, C種理解更為準一些无拗。
就在這一刻带到,可以接受最大的訪問量,叫最高并發(fā)連接
每秒內(nèi)蓝纲,承受處理最大的連接數(shù)阴孟,叫做并發(fā)連接