上午筆記圖解2013-08面靜態化_第1頁
上午筆記圖解2013-08面靜態化_第2頁
上午筆記圖解2013-08面靜態化_第3頁
上午筆記圖解2013-08面靜態化_第4頁
上午筆記圖解2013-08面靜態化_第5頁
已閱讀5頁,還剩30頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、頁面靜態化技術第 1 章大型和他 11.1判斷大型的標準..41.1.5大型..4Pv(page views)1IP1UV1同時人數1數據庫(表)大小 T1以及常用的解決方案1架構使用分層結構,同時使用服務器集群1Web 吞吐瓶頸的其它解決方法2數據庫瓶頸其它解決方法2使用緩存技術31.2第 22.12.2頁面靜態化技術4頁面靜態化的基本原理4幾個重要概念4章.22.2.3靜態4址5偽靜態52.3頁面靜態化的分類.2測試.22.4.3從形式看5從范圍看6效率的工具 AB.EX

2、E6基本用法6快速入門6如何調整最大并發數62.4 如何確定你的 apache 是使用什么 mpm7一些 SEO 的小建議92.5第 第 44.14.2頁面靜態化具體實現12的緩存機制12章關于在服務器的緩存機制的小結12看看 OB 緩存的幾個函數12管理系統15界面設計15數據庫設計15章4.34.4程序框架圖15實現階段16第 1 章判斷大型大型和他1.1的標準1.1.1Pv(page views)Page view 就是頁面: 一個在一天內,所有頁面被瀏覽的次數綜合.,上千萬的pv 值,百萬級的也勉強可以算.1.1.2IP一天內,有多少個獨立IP 來, 一般說 10

3、萬以上.1.1.3UVUv(unique visitor)獨立訪客.1.1.4同時人數同時人數超過 1 萬=并發1.1.5數據庫(表)大小 T表上T 就算是一個大表1.2大型以及常用的解決方案1.2.1架構使用分層結構,同時使用服務器集群1.2.2Web 吞吐瓶頸的其它解決方法對數據進行壓縮傳輸. Gzip 來壓縮, 這里可以通過配置apache 解決這個問題,這個后面會演示.盡量合理的優化的大小., jpg,gif, 盡量使用背景圖, 盡量使用小圖.買帶寬(花錢 ) 1*2m*3000000*60=36000001.2.3數據庫瓶頸其它解決方法表的設計要合理, 符號 3NF, 為了防止數據冗

4、余創建適當索引(主鍵索引|唯一索引|普通索引|全文索引|空間索引)創建使用的過程和觸發器,視圖優化my.ini 配置 insert優化本身sql 語句o 表名 values(,) values(“,”);分表技術(把一個海量表分成幾個小表, 水平分割,垂直分割)硬件和升級(64 位,使用 64)1.2.4使用緩存技術因為程序的執行速度 內存文件數據庫 ,如果可以減少對數據庫的訪問,這樣對的負載有提高, 分 文件緩存, 內存緩存頁面靜態化Memcached 緩存技術(Redis)第 2 章頁面靜態化技術技術在什么地方使用傳統的方法解決不方便基本原理(基本用法)快速入門案例看細節(使用陷阱,怎樣使

5、用在是正確)實際案例項目2.1頁面靜態化的基本原理看一個實際的案例:2.2幾個重要概念2.2.1:靜態比如:就是靜態.特點: 1. 不操作數據庫,因此速度快 2. 不接收參數,因此安全性比較高,放在sql 注入loginAction.?Extarac($_GET);$id=isset($id)& is_numeric($id)? $id:0; If($id=0)Die(參數有誤);/對$id 要驗證. 1. 正則表達式(重點) 如何驗證 id 必須是一個整數,不能以 0 開頭/1-9d*$/2. is_函數. 這里我在強調一把,對sql 語句一定有過濾機制Union load_file out

6、file sleep benark表名 where id=$id”;$sql=”selectpwd,uname3. 利于 SEOfrom2.2.2址比如特點: 1.一般說,會操作數據庫, 速度慢注意 3. 不利于seo2. 接收參數,所以有安全性問題,注意sql2.2.3偽靜態比如 :們希望這個&class=sport&id=2在實際開發中,我是這樣形式 HYPERLINK http:/l-sport-id2.html/ http:/l-sport-id2.html特點 1. 形式是是靜態收參數,安全性較高 3.,但是實際是對應一個動態地址,因此速度慢 2. 不接利于seo2.3頁面靜態化的分

7、類2.3.1從形式看真靜態 , 把一個動態的頁面實實在在的對應一個靜態頁面偽靜態 ,形式是是靜態,但是實際是對應一個動態地址2.3.2從范圍看全局靜態, 這個頁面都是靜態的局部靜態, 實現方法(1. 2. 使用 jquery 發出ajax 請求,然后服務器可以返回json, xml , 文本,然后瀏覽器得到數據后,在填充適當位置)2.4測試效率的工具 ab.exe作用就是,可以測試頁面響應速度的工具,同時可以測試最大并發人數,這里可以講解 如何配置apache 最大并發數, MPM 是什么?2.4.1基本用法cmdab.exe n 請求次數 c 并發數 頁面的請求地址url2.4.2快速入門2

8、.4.3如何調整最大并發數默認情況下,apache 最大并發是 150.步驟調整最大并發值, 首先確定當前的apache 使用什么 MPMMpm(多路處理模塊), 通俗的說: apache 處理并發請求的方式., 了解.Perfork 原理說明:prefork 的工作原理是, 控制進程在最初建立“StartServers”個子進程后,為了滿足 MinSpareServers 設置的需要創建一個進程,等待一秒鐘,繼續創建兩 個,再等待一秒鐘,繼續創建四個如此按指數級增加創建的進程數,最多達到每秒 32 個,直到滿足 MinSpareServers 設置的值為止。這就是預 派生(prefork)的

9、由來.這種模式可以不必在請求到來時再產生新的進程,從而減小了系統開銷以增加性能。Worker 原理說明:worker 的工作原理是, 由主控制進程生成“StartServers”個子進程,每個子進程中包含固定的 ThreadsPerChild 線程數,各個線程獨立地處理請求。同樣,為了不在請求到來時再生成線程,MinSpareThreads 和 MaxSpareThreads 設置了最少和最 多的空閑線程數;而 MaxC nts 設置了所有子進程中的線程總數.如果現有子進程中的線程總數不能滿足負載,控制進程將派生新的子進程。 如何確定你的apache 是使用什么mpmcmdhttpd.exe

10、l說明: 參看 mpm_.c 這里的就是你的 mpm 方式. 修改httpd.conf 文件.# Servool management (MPM specific)Include conf/extra/httpd-mpm.conf 修改httpd-mpm.conf 文件這里,修改成并發 1000ThreadsPerChild MaxRequestsPerChild這里,請各位注意, 你的機器能否是說一定就可以并發 100010000并發到 1000, 還有取決于你的機器的cup ,內存,不 重啟apache,測試 800 并發ok? 如何配置的并發值,比較好 ,我給一個參數, 如果中型,建議給

11、的 1500-2500 間.ThreadsPerChild MaxRequestsPerChild20001000Linux 下配置參考值:因為在 linux 下,一般說采用的 MPM 是 perfork 模式,看看如何配置.StartServers MinSpareServers MaxSpareServers MaxCnts MaxRequestsPerChild55101500#并發量#一個進程對應的線程數,對 worker 更用.給大家一個合理的建議配置. 對大部分,中型,配置:StartServers MinSpareServers MaxSpareServers ServerLim

12、itMaxCnts5#預先啟動51025002000#最大空閑進程#用于修改apache 編程參數#最大并發數MaxRequestsPerChild 500最佳: 首先計算的內存占用 一個并發 200k*并發數=總內存-必須占用內存.課后練習 關于ab.exe 程序的其它使用方法可以參考手冊2.5一些 seo 的小建議:1.2.3.url 長度不要超過 255靜態頁面不要給參數. meta 信息.name=description content=培訓,下載,4.5.如果希望被抓取前端頁面不要使用框架 frame framesetseo.到時第 3 章頁面靜態化具體實現實現頁面靜態化有兩種方法

13、1. 使用的ob 緩存機制 2. 使用模板來實現.3.1看一段代碼:的緩存機制3.21.2.關于在服務器的緩存機制的小結在服務器端有程序緩存,這個緩存必須有,程序員不能關閉.服務器端可以開啟 ob 緩存,有兩個方法 * 通過 ob_start() 開啟,頁面生效 * 可以在.ini 的配置文件中啟用ob;打開ob 緩存output_buffering = 4096只在當前3.如果你沒有打開ob 緩存,echo 數據直接放入到程序緩存,如果你打開,就先把echo 數據放入ob 緩存.4.執行到最后時,系統把 ob 數據刷新到程序緩存,然后交給當的apache,并組成成http 響應包,發送給瀏覽

14、器3.3看看 ob 緩存的幾個函數看程序 ob1.Ob2.第 4 章管理系統系統開發流程需求分析(需求分析師)-設計階段(項目經理,架構師,設計文檔 ) 實現階段( 程序員碼農)測試階段( 測試工程師)實施階段( 實施工程師)階段(), 使用原型開發4.1界面設計4.2數據庫設計表:create table news(idunsigned primary key auto_increment, /*/title varchar(128) not null,/*標題*/ content varchar(256) not null,/*內容*/filename varchar(32) /*該對應的

15、靜態頁面*/ engine=MyISAM charset utf8;測試數據insertinserts (title,content) values(s (title,content) values(o1,o2,你好);你好);4.3程序框架圖畫出有多個個文件,文件之間調用關系是什么?4.4實現階段代碼 到此基本寫好,分析問題. 每次 查看某個信息,都會去查詢數據庫,需要頁面靜態化。 這里使用到ob 實現頁面靜態化。代碼這里newsList.showNews.對程序思考: 發現問題1.2.總是要一個人去數據庫的,可以這樣解決,如果修改了,根據目前的代碼是看不到我可以給靜態文件設置一個有效時間

16、30s, 每 30s 就讓代碼自動去更新靜態頁面, 這里通過增加下面一個條件,就解決問題的但是不滿意,所以想一個更好的方法.:在管理員添加,修改,刪除某個時,就直接修改對應的靜態頁面,這樣處理更好,這里會使用模板替換技術-修改程序框架圖整理代碼:newsList.addNews.html添加newion.,顯示.處理添加,修改,刪除模板文件 news.tmp對程序再思考1.在創建靜態頁面的時候,使用分目錄來存放,年/月日/靜態頁面, 怎么把這個的靜態頁面名包括路徑下來.2. 思路 分析示意圖給大家.首頁面靜態化來實現一下:整理代碼:前端全部是靜態頁,全部是靜態生成!:login.html 登錄

17、界面,自己寫loginAction.manage.驗證用戶.管理頁面addNews.htmlnewion.處理.news.tmp 模板文件沒有變化 ,newsList.頁面,用于生成index.html說明: 在cms 系統, 將來模板會復雜些,但是整體的流程是這樣的.4.5真靜態的優缺點分析優點: 1. 利于seo 2. 生成一個靜態頁,因此不用查詢數據庫,速度快. 3. 不接受參數,安全性高.缺點: 如果數據庫信息海量,那樣就會生成海量的靜態頁面,占用大量的磁盤空間。大家可以通過分目錄存放來解決查找靜態頁速度慢.哪些不適宜使用真靜態.1.2.如果網頁數據變化非常頻繁, 不要使用真靜態. 比如: 基金 ,黃金報價.如果數據庫信息海量,同時你生成靜態頁后,查看靜態頁次數很少,比如 電信,移動的話費查詢系統. , 不要使用

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論